hibernate中,GROUP BY 之后使用方法。请高人帮忙。谢谢!!!解答之后立即结贴!

webrobot 2011-09-16 11:04:55
SELECT COUNT(*),updateTime FROM Table
GROUP BY
YEAR(updateTime)
sql 正常。


SELECT COUNT(id),o.updateTime FROM Table o
GROUP BY
YEAR(o.updateTime)

貌似Group by 之后的year不支持。去掉year 单独o.updateTime可以。


我的意图就是如上sql,查询每年成交量 ,请问hibernate里面怎么搞?有什么解决方法!
...全文
314 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
webrobot 2011-09-16
  • 打赏
  • 举报
回复
SELECT COUNT(DISTINCT YEAR(o.updateTime)) FROM Price o

sql内直接查询没问题。 但hibernate 通不过
webrobot 2011-09-16
  • 打赏
  • 举报
回复
java.lang.IllegalArgumentException: org.hibernate.hql.ast.QuerySyntaxException: expecting CLOSE, found '(' near line 1, column 27 [select count(DISTINCT year(o.updateTime)) from com.xxxx.bean.Price o]


晕倒。这句提示少了 (

貌似没有却少哇。谁帮我看看
webrobot 2011-09-16
  • 打赏
  • 举报
回复
哦。我搞错了。可以的

SELECT COUNT(id),o.updateTime FROM Table o
GROUP BY
YEAR(o.updateTime)


以上没问题。

问题出在

QuerySyntaxException: expecting CLOSE, found '(' near line 1, column 27 [select count(DISTINCT year(o.updateTime)) from com.xxx.bean.Price o]


select count(DISTINCT year(o.updateTime)) from com.xxx.bean.Price o
这句出了问题。

select count(DISTINCT o.updateTime) from com.xxx.bean.Price o 这样没问题。
莫非count distinct里面不能在家year?
游一游走一走 2011-09-16
  • 打赏
  • 举报
回复
使用的MYSQL数据库吧,把YEAR改成year看看
webrobot 2011-09-16
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 liuyuhua0066 的回复:]
哪个数据库的YEAR函数?
[/Quote]

数据库 Mysql
使用hibernate

数据表table
id updateTime
1 2010-09-09
2 2010-09-09
3 2010-10-01
....
luckyzhangye 2011-09-16
  • 打赏
  • 举报
回复
[Quote=引用楼主 webrobot 的回复:]
SELECT COUNT(*),updateTime FROM Table
GROUP BY
YEAR(updateTime)
sql 正常。


SELECT COUNT(id),o.updateTime FROM Table o
GROUP BY
YEAR(o.updateTime)

貌似Group by 之后的year不支持。去掉year 单独o.updateT……
[/Quote]
貌似hibernate里面查询实体
你试试这样做可不可以:
from tableEntity group by to_char('yyyy')
liuyuhua0066 2011-09-16
  • 打赏
  • 举报
回复
哪个数据库的YEAR函数?
webrobot 2011-09-16
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 trocp 的回复:]
YEAR(updateTime)

把这个updateTime改为数据库表对应的字段名。
[/Quote]

还是不行。

有人貌似提出过这个问题。http://www.cnblogs.com/a-peng/archive/2010/02/06/1665042.html

GROUP BY之后不能加函数.
YEAR(o.updateTime)


但貌似没有解决方法。

oO临时工Oo 2011-09-16
  • 打赏
  • 举报
回复
YEAR(updateTime)

把这个updateTime改为数据库表对应的字段名。

67,549

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧