在日期范围和强制将空行设置为0之间选择?
|
我有一张桌子,看起来像
expires | value
-------------------
2011-06-15 | 15
2011-06-15 | 15
2011-06-25 | 15
2011-07-15 | 15
2011-07-15 | 15
2011-07-25 | 15
2011-08-15 | 15
2011-08-15 | 15
2011-08-25 | 15
我想运行一个查询,将吐出
June | 45
July | 45
August | 45
所以我的查询是
SELECT SUM(amount) AS `amount`,
DATE_FORMAT(expires , \'%M\') AS `month`
FROM dealDollars
WHERE DATE(expires) BETWEEN DATE(NOW())
AND LAST_DAY(DATE(NOW()+INTERVAL 3 MONTH))
GROUP BY MONTH(expires)
哪个工作正常。但是结果是,如果说7月份没有任何行,那么7月份将不会显示。
如何强制7月显示其值为0?
没有找到相关结果
已邀请:
4 个回复
陈獭
僻朵庙惩竣
疯了,不是吗?
骚瓤
表技巧- 创建仅包含递增数字的表-使用auto_increment可以轻松做到:
使用以下命令填充表:
...根据需要提供尽可能多的值。在这种情况下,INSERT语句至少需要运行3次。 使用DATE_ADD构造一个天列表,并根据
值增加:
使用OUTER JOIN获得所需的输出:
为什么是数字而不是日期? 简单-可以根据数字生成日期,就像我提供的示例一样。这也意味着只使用一个表,而不是每个数据类型一个表。
铰齐插
小提琴