我正在尝试创建一个选择存储过程来返回一个值的不同实例计数。然而,如果不存在不同的实例,它应该返回 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”列和“计数”列。但是,我还需要能够使用 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'
关于带有 WHERE 子句的 MySQL SELECT 不包括数量为 '0' 的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15038447/