0

我有以下 sql

SELECT SUM(amount) from CustomerPayment where date like '%2013' GROUP BY TYPE

在类型栏中有两种选择,一种是银行,另一种是现金

我想分别总结这些。例如:银行总共是500,现金是400

然而,上面的 sql 并没有对记录求和。相反,它返回银行和现金记录的第一条记录。为什么?

4

4 回答 4

0

我会说尝试将类型添加到 sql 查询中。然后它具有您希望分组的类型的可见表示。

 SELECT SUM(amount), TYPE from CustomerPayment where date like '%2013' GROUP BY TYPE
于 2013-05-01T09:37:43.233 回答
0

您可以尝试使用 year(date)=2013,因为数据不存在,所以我猜测“like”函数是否不允许 group by 正确执行其功能。

于 2013-05-01T09:37:52.937 回答
0

如果您的日期字段的数据类型为DateorDateTime然后 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

于 2013-05-01T09:46:09.250 回答
-1

还包括 TYPE col

SELECT TYPE, SUM(amount) from CustomerPayment where date like '%2013' GROUP BY TYPE
于 2013-05-01T09:34:38.530 回答