获取一年中每个月的总金额

时间:2017-12-25 19:17:12

标签: php mysql sql

Stream

我正在使用MySQL,我需要每个月给定年份的总金额支出(如果给定月份没有金额花费那么它应该打印零)。 上面的查询正是我需要的,但我得到的是单独行中的总值。 我需要像所有月份一样的所有价值应该在一行中。这样我就可以轻松阅读。 Result I get

1 个答案:

答案 0 :(得分:1)

你很亲密。只需删除GROUP BY

即可

您不应将日期存储为字符串。在极少数情况下,这是必要的。但我会建议你修改类型格式,所以日期存储为日期。

其次,您可以使用like简化逻辑。如果您有字符串,请使用字符串操作:

SELECT SUM(CASE WHEN sm.BillDate LIKE '%/01/%' THEN sm.GrandTotal ELSE 0 END) AS January,
       . . .

第三,YEAR()返回一个整数,因此比较应该是一个整数。但是,如果值是一个字符串,只需执行:

WHERE BillDate LIKE '%2017'

或者,如前所述,修复数据,以便使用正确的数据类型存储日期。