我正在为一个应用程序使用SQL查询,但我不能让它计算0结果的值。
代码如下所示:
b
它应该显示8个位置的失败计数,但是因为它们的FailCount为0,所以会留下位置1和4。如何让它显示其他2行?
由于
答案 0 :(得分:2)
使用LEFT JOIN
现代显式语法来获取这些行。
select CarrierPosition, COUNT(*) as FailCount
from tbl_0000000024
LEFT JOIN tbl_0000000025 ON FK_AS0000000032 = fk_as0000000056
where asictestdate >= DATEADD(hour,-6, getdate())
and fk_as0000000046 = '135'
and FailReason = '151'
and tbl_0000000025.Status = ' Current'
group by CarrierPosition
Order by CarrierPosition
(也许应该是另一种方式,列和表名称不能很好地描述。将LEFT切换到右边,看看如果上述查询没有按预期工作会发生什么。)