Группа SQL, где предложение по сотруднику - PullRequest
1 голос
/ 15 ноября 2010

У меня есть запрос, который возвращает сотрудников:

Name     Form
Bob       abc
Bob       gfd
Bob       fgf
John      abc
Gavin     abc
Jessie    ala
Jessie    asf

Как бы я сказал, если abc существует для сотрудника, тогда result = yes, а если abc не существует, то нет?То, что я хотел бы видеть это:

Name   Result
Bob    Yes
John   Yes
Gavin  Yes
Jessie  No

1 Ответ

3 голосов
/ 15 ноября 2010

SQL Server 2000+, используйте:

  SELECT e.name,
         COALESCE(MAX(CASE WHEN e.form = 'abc' THEN 'Yes' END), 'No') AS result
    FROM EMPLOYEES e
GROUP BY e.name

Часть MAX вернет NULL, если ни одно из значений формы не соответствует «abc», которое COALESCE ловит, чтобы вернуть «Нет».

...