Установите переменную на основе оператора 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

Результат из запроса.

Другие вопросы по тегам