Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/295.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Mysql-根据月份和年份显示所有计数行_Php_Mysql - Fatal编程技术网

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