我有一张看起来像的 table
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 月显示 0 作为其值?
最佳答案
没有简单的方法可以做到这一点。一种可能的方法是有一个名为月的表:
其中将有 12 行:(一月、二月、...、十二月)
您可以将 Months 表与您必须获得所需输出的查询保持连接。
关于mysql - 在日期范围和强制空行为 0 之间进行选择?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6352574/