我正在编写一个查询来获取字段的计数并将其分组在一起,但我希望它返回所有值,即使计数为 0。
这是我所拥有的:
SELECT COUNT(*)
,PMI
FROM Items AS AA
JOIN Headers AS BB
ON AA.DocID = BB.ID
WHERE (DocDate = CAST(CONVERT(varchar(8), GETDATE() - 1, 1) AS datetime))
AND PMI != ''
GROUP BY PMI
Run Code Online (Sandbox Code Playgroud)
这是我想看到的:
COUNT PMI
1 900330
5 900702
0 900550
0 900331
Run Code Online (Sandbox Code Playgroud)
但这就是我得到的:
COUNT PMI
1 900330
5 900702
Run Code Online (Sandbox Code Playgroud)
我以前从未需要编写查询来完成此任务,因此如果这是微不足道的,我深表歉意。
编辑:我意识到这些表并不包含我正在寻找的所有项目。我有一个名为“lookup”的查找表,其中包含我希望查询计数的所有这些项目。
编辑2:谢谢大家。通过创建视图并使用查找表和外连接使其工作。这把戏做得很精彩。
INNER JOIN如果匹配失败,您使用的将不返回任何行。你应该使用 anOUTER JOIN代替。
假设PMI是Items:
SELECT PMI, COUNT(BB.ID)
FROM Items AS AA
LEFT JOIN Headers AS BB
ON AA.DocID = BB.ID
WHERE (DocDate = CAST(CONVERT(varchar(8), GETDATE() - 1, 1) AS datetime))
AND PMI != ''
GROUP BY PMI
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
13263 次 |
| 最近记录: |