我正在尝试获取特定日期的记录数量。问题是,当日期没有记录时,它不会显示日期。
$asksome= mysqli_query("
SELECT COUNT(worker_id) AS amount, problem.datter AS datum
FROM problem
WHERE worker_id = $idmed
GROUP BY datter"
);
结构如下:
worker_id | datter | note
1 |2018-02-25 |
1 |2018-02-26 |
3 |2018-02-25 |
这是我正在使用的查询。我希望查询显示日期,即使COUNT为0.我的意思是,我希望结果是这样的:
count result | date
0 | 2018-02-24
2 | 2018-02-25
1 | 2018-02-26
0 | 2018-02-27
- - 对于发现此帖不知道该做什么的人:我通过制作另一个只包含我想要检查的特定日期的表来解决我的问题。 我使用了以下查询:
SELECT weeks.week_id AS datum, COUNT(problem.datter) AS amount
FROM weeks
LEFT JOIN problem ON problem.datter = weeks.week_id
GROUP BY weeks.week_id
答案 0 :(得分:0)
你应该清楚知道如何在0时处理计数的sql。通常,当使用SQL SUM()
和COUNT()
以及GROUP BY
时语句,0永远不会输出。这是因为,当没有0的记录存在时,GROUP BY
子句没有任何内容可以分组。
为此你可以使用COALESCE表达式。
您可以在此处查看其文档:https://docs.microsoft.com/en-us/sql/t-sql/language-elements/coalesce-transact-sql
所以在你的例子中,sql查询应该是:
SELECT COALESCE (SELECT COUNT(worker_id) AS amount, problem.datter AS datum
FROM problem
WHERE worker_id = $idmed
GROUP BY datter"), 0);