Sql 当计数(*)为空时返回0
我是初学者,需要你的帮助 我在一个表中有两列:Sql 当计数(*)为空时返回0,sql,Sql,我是初学者,需要你的帮助 我在一个表中有两列: A_VATNO和 一辆车的数量不算在内 当无A_VATNO时,作为一行导出的内容不计算在内 对于我的列表中缺少的a_VATNO,我需要得到一个零 在下面的示例中,我没有为A_VATNO='123456789'和A_ALARMTYPE='40'获取任何信息,因为表报警中没有记录 例如: 102030401 | 10 987654321 | 45 有什么解决方案可以最终得到这个结果吗 102030401 | 10 987654321 | 4
A_VATNO
时,作为一行导出的内容不计算在内
对于我的列表中缺少的a_VATNO
,我需要得到一个零
在下面的示例中,我没有为A_VATNO='123456789'和A_ALARMTYPE='40'获取任何信息,因为表报警中没有记录
例如:
102030401 | 10
987654321 | 45
有什么解决方案可以最终得到这个结果吗
102030401 | 10
987654321 | 45
123456789 | 0
提前谢谢你
SELECT A_VATNO, COUNT(*)
FROM ALARMS
WHERE A_ALARMTYPE = '40' AND A_VATNO IN
(
'102030401',
'987654321',
'123456789'
)
AND DATE(A_ALARM_DATE) >= '2015-01-01'
AND DATE(A_ALARM_DATE) <= '2015-12-31'
GROUP BY A_VATNO
;
选择一个值,计数(*)
警报
其中A_ALARMTYPE='40'和A_VATNO在
(
'102030401',
'987654321',
'123456789'
)
和日期(报警日期)>=“2015-01-01”
和DATE(A_ALARM_DATE)您需要一个派生表来与外部联接一起使用。典型的语法是:
SELECT v.ATNO, COUNT(a.A_VATNO)
FROM (SELECT '102030401' as VATNO UNION ALL
SELECT '987654321' as VATNO UNION ALL
SELECT '123456789' as VATNO
) v LEFT JOIN
ALARMS a
ON a.A_VATNO = v.vatno AND
a.A_ALARMTYPE = '40' AND
A_ALARM_DATE >= '2015-01-01' AND
A_ALARM_DATE <= '2016-01-01'
GROUP BY v.VATNO ;
选择v.ATNO,计数(a.a\u VATNO)
从(选择“102030401”作为VATNO UNION ALL
选择“987654321”作为VATNO UNION ALL
选择“123456789”作为VATNO
)v左连接
警报a
关于a.a_VATNO=v.VATNO和
a、 a_ALARMTYPE='40'和
报警日期>='2015-01-01'和
报警日期用您正在使用的数据库标记您的问题。