我有以下类型列SQL为什么这个SQL返回那样?
SELECT SUM(amount) from CustomerPayment where date like '%2013' GROUP BY TYPE
有两个选择,一个是他们银行,另一种是现金
我想seperately总结这些。例如:银行总计500,现金是400
但是,上面的sql不记录总和。相反,它会返回银行和现金记录的首个记录。为什么?
我有以下类型列SQL为什么这个SQL返回那样?
SELECT SUM(amount) from CustomerPayment where date like '%2013' GROUP BY TYPE
有两个选择,一个是他们银行,另一种是现金
我想seperately总结这些。例如:银行总计500,现金是400
但是,上面的sql不记录总和。相反,它会返回银行和现金记录的首个记录。为什么?
包括TYPE山坳也
SELECT TYPE, SUM(amount) from CustomerPayment where date like '%2013' GROUP BY TYPE
在org.hibernate.hql.classic.PathExpressionParser.token给出此错误(PathExpressionParser.java:130) \t at org.hibernate .hql.classic.ParserHelper.parse(ParserHelper.java:28) \t在org.hibernate.hql.classic.SelectParser.token(SelectParser.java:176) \t在org.hibernate.hql.classic.ClauseParser.token (ClauseParser.java:86) – user2326472 2013-05-01 09:37:04
向SELECT组件添加字段在处理GROUP BY或WHERE条件时不会产生影响 – Tomas 2013-05-01 09:47:08
我要说的尝试,并添加类型的SQL查询。然后它有一个你想分组的类型的可见表示。
SELECT SUM(amount), TYPE from CustomerPayment where date like '%2013' GROUP BY TYPE
在org.hibernate.hql.classic.PathExpressionParser.token(PathExpressionParser.java :1 30)at org.hibernate.hql.classic.ParserHelper.parse(ParserHelper.java:28)at org.hibernate.hql.classic.SelectParser.token(SelectParser.java:1 76)在org.hibernate.hql.classic.ClauseParser.token(ClauseParser.java:86) – user2326472 2013-05-01 09:38:33
我找不到错误可能在sql语句中。可能与您尝试输入的数据有关?如果是这种情况,那可能可以解释为什么使用当前给定的信息,我们无法看到问题。 – Skillcoil 2013-05-01 09:45:08
我使用休眠可能它与休眠不同。 – user2326472 2013-05-01 09:58:31
可以尝试使用一年(日期)= 2013,如果数据不存在,所以我猜测,如果“喜欢”功能是不是让一群被正确地执行其功能。
你应该首先粘贴数据 – 2013-05-01 10:08:55
如果您的日期字段的数据类型为Date
或DateTime
那么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
nop it is varchar – user2326472 2013-05-01 09:58:03
,请复制粘贴您的表中的数据在这里 – Jalpesh 2013-05-01 09:28:53
没有错,你的查询,除了'like' - 使用'年(日期)== 2013'。它适用于我:http://sqlfiddle.com/#!2/7c1c90/3 – Mar0ux 2013-05-01 09:39:51