SQL WHERE для COUNT в операторе SELECT с GROUP BY - PullRequest
3 голосов
/ 24 мая 2011
SELECT COUNT(pkNotification) AS caseTotal
,COUNT(fkCaseType) AS Suspected
, COUNT(fkCaseType) AS Confirmed
, Disease.Name 
FROM [Notification] 
INNER JOIN [Disease] ON Notification.fkDisease=Disease.pkDisease 
GROUP BY Disease.Name

Это моё утверждение.Но мне нужен COUNT (fkCaseType) AS. Предполагается, что это происходит только при fkCaseType = 1, а значение «Подтверждено» - при fkcaseType = 2.

Проблема заключается в том, что при выполнении подзапросов у меня возникли проблемы с группой.

1 Ответ

6 голосов
/ 24 мая 2011
COUNT(CASE WHEN fkCaseType = 1 THEN 1 END) Suspected,
COUNT(CASE WHEN fkCaseType = 2 THEN 1 END) Confirmed

В первом операторе, когда fkCaseType = 1 - затем возвращается 1, таким образом, считается COUNT, NULL в противном случае, что пропускается. Для второго - тоже самое.

...