Объдинение разных результатов в одну строку, но в разные столбцы в SQL

Всем привет. Есть таблица: table со столбцами id и option_id. id - это идентификатор компании, а option_id - это подключенные услуги, возможные значения: 1,2,3,4,5. У id может быть несколько значений из option_id, выглядит примерно так:

id option_id
7777 1
7777 3
7777 4

Нужно вывести формат: id, Есть услуга 2, Есть услуга 4. И в значениях строк вместо 2 и 4 указывать Да или Нет.

Ожидаемый результат:

id Есть услуга 2 Есть услуга 4
7777 Да Нет
7978 Да Да
8392 Нет Да

Я использую такой запрос:

SELECT DISTINCT id,
 CASE WHEN option_id IN (1,3,4,5) THEN 'Нет' WHEN option_id = 2 THEN 'Да'ELSE CAST(option_id AS CHAR(20))  
 END "Есть услуга 2", 
  CASE WHEN option_id IN (1,2,3,5) THEN 'Нет' WHEN option_id = 4 THEN 'Да'ELSE CAST(option_id AS CHAR(20))  
 END "Есть услуга 4"
FROM table

Но получаю результат:

id Есть услуга 2 Есть услуга 4
7777 Нет Нет
7777 Да Нет
7777 Нет Да
7778 Нет Нет
7778 Да Нет

Т.е. мой запрос выводит дополнительные строки для id по каждому значению, а хотелось бы чтоб id не повторялся и приоритетно выводились только значения 2,4 = Да, а все остальное Нет и не создавались дополнительные строки. Как можно пофиксить?


Ответы (0 шт):