Установите переменную на основе оператора IF в SQL Manager
У меня есть таблица с именем Ordhdr, я хочу создать запрос на основе столбца [status] этой таблицы. У меня есть много статусов, которые я хочу сгруппировать в Won, Lost, Pending для более удобного просмотра. Как установить объявление, установить для оператора сначала "переименовать" текущий статус в WON
, LOST
или же PENDING
так что я могу затем отобразить результаты моего запроса, используя новое имя.
Sample Data
Order 1, STatus is QteCall1 (Pending Status)
Order 2, Status is Converted (Won Status)
Order 3, STatus is Declined (Dead Status)
Order 4, Status is Waiting (Pending Status)
Order 5, Status is NOResponse (Dead Status)'
как бы я "переименовал" текущий статус, чтобы получить результаты, которые показали количество
- 1 выиграл
- 2 Ожидание
- 2 мертвых
1 ответ
Это то, что тебе надо?
SELECT CASE WHEN STATUS = 'Converted' THEN 'WON'
WHEN STATUS IN ('QteCall1','Waiting') THEN 'PENDING'
WHEN STATUS IN ('Declined', 'NOResponse ') THEN 'LOST' END AS NEW_NAME
--The above case expression is being used to compare and rename the values according to the desired match
,COUNT(*) AS COUNT
FROM Ordhdr
GROUP BY
CASE WHEN STATUS = 'Converted' THEN 'WON'
WHEN STATUS IN ('QteCall1','Waiting') THEN 'PENDING'
WHEN STATUS IN ('Declined', 'NOResponse ') THEN 'LOST' END
-- This second case expression is the same as the previous one, but it is required by the SQL standards to be in the GROUP BY section