我有以下查询,但不符合我的要求。我需要在结果中返回计数零。我正在寻找指定条件的计数为零的DocID,但这些DocID甚至没有显示在结果中。
SELECT
DocID, Count(*) AS ArchivedCount
FROM
Doc
WHERE
Status <> 'Archived'
GROUP BY
DocID
ORDER BY
DocID
答案 0 :(得分:5)
由于您需要使用所有DocID
,因此应使用SUM
代替COUNT
,并将条件移至{{1}内的CASE
语句中像这样:
SUM
现在结果将包含所有SELECT
DocID
, SUM(CASE WHEN Status <> 'Archived' THEN 1 ELSE 0 END) AS ArchivedCount
FROM
Doc
GROUP BY
DocID
ORDER BY
DocID
,即使DocID
与Status
不同的结果。