【发布时间】:2018-12-17 08:20:11
【问题描述】:
我现在有这个问题:
SELECT DATE_FORMAT(`dataNl`, \'%Y%m\') AS `Ym`, COUNT(*) AS `totale`
FROM `noleggio`
GROUP BY `Ym`
这有助于获取每个月的数据,但如果一个月的值为 0,则数据库中不存在此数据,因此无法获取。我需要一个查询来添加剩余月份,将COUNT 字段设置为0。
我编写了一个 PHP 代码来将具有 0 值的月份添加到数组中,但它仅在年份只有一个时才有效,如果我想获得更多,这需要很多棘手的代码,我认为可能有一个用 SQL 解决。
这是 PHP 代码:
$t = array();
$m = array();
foreach ($months as $val) {
$t[] = $val['totale'];
$m[] = $val['Ym'];
}
for ($i = 0; $i < 12; ++$i) {
if (in_array($i + 201801, $m) == false) {
array_splice($t, $i, 0, 0);
}
}
【问题讨论】:
-
在 count >= 0 的查询中添加
having子句。 -
您需要一个日历表。如果你谷歌它,有很多例子如何制作和使用。
-
按月添加组
-
@RevathiGanesh 我试过但没用
-
创建月份帮助表,其中包含所有需要的月份。外部连接该表。
标签: php mysql sql datetime mysqli