我有以下 sql
SELECT SUM(amount) from CustomerPayment where date like '%2013' GROUP BY TYPE
在类型栏中有两种选择,一种是银行,另一种是现金
我想分别总结这些。例如:银行总共是500,现金是400
然而,上面的 sql 并没有对记录求和。相反,它返回银行和现金记录的第一条记录。为什么?
我会说尝试将类型添加到 sql 查询中。然后它具有您希望分组的类型的可见表示。
SELECT SUM(amount), TYPE from CustomerPayment where date like '%2013' GROUP BY TYPE
您可以尝试使用 year(date)=2013,因为数据不存在,所以我猜测“like”函数是否不允许 group by 正确执行其功能。
如果您的日期字段的数据类型为Date
orDateTime
然后 LIKE 运算符将不起作用。
对于日期比较,请使用日期函数。
SELECT SUM(amount)
FROM CustomerPayment
WHERE YEAR(date) = 2013
GROUP BY TYPE
https://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_year
还包括 TYPE col
SELECT TYPE, SUM(amount) from CustomerPayment where date like '%2013' GROUP BY TYPE