Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在hibernate中编写SQL sum()和groupby?_Hibernate_Hibernate Criteria - Fatal编程技术网

如何在hibernate中编写SQL sum()和groupby?

如何在hibernate中编写SQL sum()和groupby?,hibernate,hibernate-criteria,Hibernate,Hibernate Criteria,我的问题是: select GRN_NO, IDENTIFICATION_NO, RBI_TRN_DATE, PERIOD_FROM, PERIOD_TO, SUM(AMOUNT) AS AMOUNT from PTAX_ECHALLAN_DATA where IDENTIFICATION_NO in ('ECC0013056', '192009028150', '20150086699') GROUP BY GRN_NO; 我正在使用以下代码进行尝试: Criteria cr

我的问题是:

select GRN_NO, IDENTIFICATION_NO, RBI_TRN_DATE, PERIOD_FROM, PERIOD_TO,
       SUM(AMOUNT) AS AMOUNT
from PTAX_ECHALLAN_DATA
where IDENTIFICATION_NO in ('ECC0013056', '192009028150', '20150086699') 
GROUP BY GRN_NO;
我正在使用以下代码进行尝试:

Criteria cr = session.createCriteria(PTAX_ECHALLAN_DATA.class);
cr.setProjection(Projections.projectionList()
.add(Projections.sum("amount").as("amount"))
.add(Projections.property("rbiTrnDate").as("rbiTrnDate"))
.add(Projections.property("idNo").as("idNo"))
.add(Projections.property("grnDate").as("grnDate"))
.add(Projections.property("preiodTo").as("preiodTo"))
 .add(Projections.property("preiodFrm").as("preiodFrm"))
 .add(Projections.groupProperty("id.grnNO")));
 cr.add(Restrictions.in("idNo", Arrays.asList(OldEc, EC, applnNo)));
cr.setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP);
List list = cr.list();
但是得到了错误

错误为:“原因:java.sql.SQLSyntaxErrorException:ORA-00979: 不是一组表达”


我该怎么写?请帮忙。提前感谢。

您需要在group by中选择除聚合列以外的所有其他列

select GRN_NO, IDENTIFICATION_NO, RBI_TRN_DATE, PERIOD_FROM, PERIOD_TO,
       SUM(AMOUNT) AS AMOUNT
from PTAX_ECHALLAN_DATA
where IDENTIFICATION_NO in ('ECC0013056', '192009028150', '20150086699') 
GROUP BY GRN_NO, IDENTIFICATION_NO, RBI_TRN_DATE, PERIOD_FROM, PERIOD_TO