我们可以在HQL中使用带有GROUP BY的to_char()

时间:2018-02-18 09:01:02

标签: java sql hibernate hql

使用Hibernate

执行以下查询时
select to_char(vdadCloseDate,'yyyymm'), count(*) from RmDashboardAccountDataBe where 1=1  and vdadRmId in('MK13','MK11') GROUP BY TO_CHAR(vdadCloseDate,'YYYYMM')

我收到以下异常,

  

java.sql.SQLSyntaxErrorException:ORA-00979:不是GROUP BY表达式

有没有办法处理这个问题?

1 个答案:

答案 0 :(得分:1)

这是“纯粹的”Oracle SQL(即非HQL),它看起来与您的查询完全相同(不过我必须使用不同的表名和列名):

SQL> select to_char(hire_date, 'yyyymm'), count(*)
  2  from employees
  3  where department_id in (10, 20)
  4  group by to_char(hire_date, 'yyyymm');

TO_CHA   COUNT(*)
------ ----------
200309          1
200508          1
200402          1

SQL>

所以 - 是的,它运作正常。

这是指向HQL Group by clause的链接,这也表明这样的查询完全有效(请查看以便我不必在此处复制/粘贴其内容)。

这就是为什么我问你是否确定这是返回ORA-00979错误的查询。当你回答它是的时候,呵呵,我不知道该说些什么......