Php Mysql-根据月份和年份显示所有计数行
如何根据特定年份和月份统计记录?例如,我想做的如下:Php Mysql-根据月份和年份显示所有计数行,php,mysql,Php,Mysql,如何根据特定年份和月份统计记录?例如,我想做的如下: | Category | Total | |-----------|--------| | Cat 1 | 15 | | Cat 2 | 0 | | Cat 3 | 20 | | Cat 4 | 18 | 这是我提出的问题 SELECT kc.jenis_katCuti, count(pc.id) AS jum_cuti FROM permohonan_cuti pc R
| Category | Total |
|-----------|--------|
| Cat 1 | 15 |
| Cat 2 | 0 |
| Cat 3 | 20 |
| Cat 4 | 18 |
这是我提出的问题
SELECT kc.jenis_katCuti, count(pc.id) AS jum_cuti
FROM permohonan_cuti pc
RIGHT JOIN kat_cuti kc on kc.katCuti_id=pc.katCuti_id
WHERE YEAR(pc.tarikh_mula)=2017 AND MONTH(pc.tarikh_mula)=1
GROUP BY kc.jenis_katCuti
从查询中,它将仅显示用户选择的年份和月份。我希望它显示所有记录,如果没有特定月份和年份的记录,则返回0
我也试过了,但还是没有成功
在计数时的用例如下所示:
SELECT
kc.jenis_katCuti,
count(CASE WHEN YEAR(pc.tarikh_mula) = 2017 AND MONTH(pc.tarikh_mula) = 1 THEN 1 ELSE NULL END) AS jum_cuti
FROM permohonan_cuti pc
RIGHT JOIN kat_cuti kc on kc.katCuti_id = pc.katCuti_id
GROUP BY kc.jenis_katCuti
原因计数仅排除null,表达式YEARpc.tarikh_-mula=2017和MONTHpc.tarikh_-mula=1将返回1或0,计数将包括这两个值
如果您只使用YEARpc.tarikh_-mula=2017和MONTHpc.tarikh_-mula=1,请尝试求和:
谢谢你的回答@Foward。令人惊叹的我有点数错了sum@Foward,最后一个问题。我可以知道如何计算jum_cuti的总数吗?我回显jum_cuti,但它返回0,或者我是否需要进行另一个计数查询。@Amran Google“mysql汇总”。谢谢您提供的信息。成功了。现在我正在搜索是否可以有一个标题来替换汇总时的空值。
SELECT
kc.jenis_katCuti,
count(CASE WHEN YEAR(pc.tarikh_mula) = 2017 AND MONTH(pc.tarikh_mula) = 1 THEN 1 ELSE NULL END) AS jum_cuti
FROM permohonan_cuti pc
RIGHT JOIN kat_cuti kc on kc.katCuti_id = pc.katCuti_id
GROUP BY kc.jenis_katCuti
SELECT
kc.jenis_katCuti,
sum(YEAR(pc.tarikh_mula) = 2017 AND MONTH(pc.tarikh_mula) = 1) AS jum_cuti
FROM permohonan_cuti pc
RIGHT JOIN kat_cuti kc on kc.katCuti_id = pc.katCuti_id
GROUP BY kc.jenis_katCuti