2010-11-15 4 views
1

У меня есть запрос, возвращение сотрудников:SQL группа, где положение сотрудника

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

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

Name Result 
Bob Yes 
John Yes 
Gavin Yes 
Jessie No 

ответ

3

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, если ни одно из значений формы не соответствуют "а", которой COALESCE ловит «Нет».

+0

+1 Кроме того, удалите коалесценцию и измените корпус на «MAX (CASE WHEN e.form = 'abc» THEN «Yes» ELSE «No» END). –

Смежные вопросы