我试图创建一个select存储过程来返回一个值的count个不同实例。但是,如果没有明显的实例存在,则返回0。下面的查询几乎可以满足我的所有需要
SELECT br.barangay,COUNT(DISTINCT cr.cr_patient_no) as `amount`
FROM barangay as br LEFT JOIN case_report_main as cr on cr.cr_barangay = br.barangay
GROUP BY br.barangay
ORDER BY br.barangay ASC
此代码返回列“barangay”,其中包含位置名称和“count”列。不过,我也需要能够通过使用WHERE子句搜索它们。
WHERE cr.cr_date_onset BETWEEN '2010-01-01' AND '2014-12-12'
我需要一个包含0的结果,如下所示:
'NAME1'|'1'
'NAME2'|'0'
'NAME3'|'4'
'NAME4'|'0'
但是当我添加WHERE子句时,它会删除所有值为0的结果。
'NAME1'|'1'
'NAME3'|'4'
有人能提供一个解决方案吗?
最佳答案
把这个放在WHERE子句中:
cr.cr_date_onset IS NULL OR cr.cr_date_onset BETWEEN '2010-01-01' AND '2014-12-12'