HiberNate--->select语句 请高手帮帮忙

java_xf 2008-12-09 10:12:41
表1
aa bb
2008-10-1 1
2008-10-2 1
2008-11-1 2
2008-12-1 3
表2
cc dd
2008-10-1 2
2008-10-2 2
2008-11-1 2
2008-11-2 2

表3
ee ff
2008-09-1 2
2008-10-1 2

统计出像下面这个表
表4
月份 bb dd ff
2008-09 0 0 2
2008-10 2 4 2
2008-11 2 4 0
2008-12 3 0 0


这个是SQL语句

select Tdate,bb,0 as dd, 0 as ff
from
(select sum(bb) as bb,year(convert(dateTime,aa,101) )+month(convert(dateTime,aa,101) ) as Tdate
from 表1
group by Tdate) AS A
union all
select Tdate,0 as bb,dd,0 as ff
from
(select sum(dd) as dd,year(convert(dateTime,cc,101) )+month(convert(dateTime,cc,101) ) as Tdate
from 表2
group by Tdate
) AS B
union all
select Tdate,0 as bb, 0 as dd, ff
from
(select sum(ff ) as ff ,year(convert(dateTime,ee,101) )+month(convert(dateTime,ee,101) ) as Tdate
from 表3
group by Tdate
) AS C
order by Tdate

请大家帮忙,写一下HIBERNATE 语句!谢谢
...全文
145 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
java_xf 2008-12-09
  • 打赏
  • 举报
回复
Johnson_Hong ,你可以给个建议或者是思路吗?
已经想了两天了,也写不出来。
Johnson_Hong 2008-12-09
  • 打赏
  • 举报
回复
hql不支持from嵌套吧,可以分3次查询,然后在java程序合并
或者干脆就用nativeSql
sebatinsky 2008-12-09
  • 打赏
  • 举报
回复
select count(payment), status.name
from Payment as payment
join payment.currentStatus as status
join payment.statusChanges as statusChange
where payment.status.name <> PaymentStatus.AWAITING_APPROVAL
or (
statusChange.timeStamp = (
select max(change.timeStamp)
from PaymentStatusChange change
where change.payment = payment
)
and statusChange.user <> :currentUser
)
group by status.name, status.sortOrder
order by status.sortOrder

呵呵,是没有from嵌套的,不过可以用左右连接,楼主去下一个Hibernate的中文文档来看看就很清楚了,按照要求的欧普可以写.
ks_ly 2008-12-09
  • 打赏
  • 举报
回复
你为什么要用hibernate.这么长的hql用sql多好。
Johnson_Hong 2008-12-09
  • 打赏
  • 举报
回复
建议你看一下hibernate的文档
Chapter 16. Native SQL

67,538

社区成员

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

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