我有一张看起来像的 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/

10-11 21:56
查看更多