theforever(碧海情天) :我不明白你所说的:“你这个问题只有一个答案,就是SUM(DISTINCT A.PRODNUM)根本是错误的。你在哪里看过可以这样写?”我不知道你说的是sql还是hql.先不说hql,如果你指的是sql语句,那么SUM(DISTINCT A.PRODNUM)这种形势我不是在哪看的,而是我已经用了很长时间了,在sql查询分析器中是正确的,不信你去试试。我很不明白你为什么说它根本就是错的? 如果你指的是hql那么不用我告诉你在哪看的,你上网搜一下,关键字是"distinct"与它相关的介绍hibernate的文章都有介绍。 可能是我问的方式有问题,很多人没有读懂我的问题,在这里我向大家抱歉。下面我详细的说一下我的问题: 我所使用的sql语句如下: SELECT A.ID,A.FactoryBatchNo,B.Orderdate,B.OrderClient,SUM(C.ProdNum), SUM(C.ProdNum)-SUM(DISTINCT D.ProdNum) FROM FACTORY_ORDER_BATCH A,FACTORY_ORDER_INFO B, FACTORY_ORDER_PRODUCT C,FACTORY_ORDER_STATUS D WHERE A.ID=B.BatchId AND B.ID=C.OrderId AND B.ID=D.OrderId AND A.DoneFlg='1' GROUP BY A.FactoryBatchNo,B.Orderdate,B.OrderClient,A.ID 它在sql查询分析器中所显示的结果是完全正确的!只是将它写成hql语句时,hibernate对distinct就会报错!我不知道是hibernate根本就不支持distinct在聚合函数中使用,还是我的hibernate配置有问题?希望哪位前辈能够解决小弟的这点疑问?小弟在此叩拜,万分感激了!! 另外非常感谢大家这么热心的帮我解答问题,非常感谢大家!!尤其是theforever(碧海情天) ,你说的很对,还是我没学透。谢谢你!!!
HQL不支持复杂查询,象关联子查询,嵌套字查询,统计查询等等
谁是hibernate高手,帮小弟解决解决吧?
希望能有人回答我的问题?
哪在sql中为什么就可以呢?在sql中distinct放在SUM中就是对结果集操作吗?我查过一些资料,hibernate是支持distinct在聚合函数中使用,举的例子也是放在SUM()函数中,到底谁能回答我的问题呀?哪位前辈帮帮我呀?求求大家了?小弟叩谢了?
那位前辈还有高见,小弟万分感激!!!这个问题就没人能够解决了吗?
--------
这个我没看到(还以为楼主写的hql是笔误呢),如果这样倒是说得过去,但这只是在hibernate里,并且是它允许的那种场合。对hql我没看,没有发言权了。
SUM(A.PRODNUM) FORM APP A GROUP BY A.PRODNUM;
如果你指的是hql那么不用我告诉你在哪看的,你上网搜一下,关键字是"distinct"与它相关的介绍hibernate的文章都有介绍。
可能是我问的方式有问题,很多人没有读懂我的问题,在这里我向大家抱歉。下面我详细的说一下我的问题:
我所使用的sql语句如下:
SELECT A.ID,A.FactoryBatchNo,B.Orderdate,B.OrderClient,SUM(C.ProdNum),
SUM(C.ProdNum)-SUM(DISTINCT D.ProdNum)
FROM FACTORY_ORDER_BATCH A,FACTORY_ORDER_INFO B,
FACTORY_ORDER_PRODUCT C,FACTORY_ORDER_STATUS D
WHERE A.ID=B.BatchId AND B.ID=C.OrderId AND B.ID=D.OrderId AND A.DoneFlg='1'
GROUP BY A.FactoryBatchNo,B.Orderdate,B.OrderClient,A.ID
它在sql查询分析器中所显示的结果是完全正确的!只是将它写成hql语句时,hibernate对distinct就会报错!我不知道是hibernate根本就不支持distinct在聚合函数中使用,还是我的hibernate配置有问题?希望哪位前辈能够解决小弟的这点疑问?小弟在此叩拜,万分感激了!!
另外非常感谢大家这么热心的帮我解答问题,非常感谢大家!!尤其是theforever(碧海情天) ,你说的很对,还是我没学透。谢谢你!!!