【发布时间】:2017-10-27 16:21:24
【问题描述】:
请找到以下查询。 我用spring data jpa编写的这个查询。所以它应该适用于所有关系数据库,但我在 MsSQL 服务器上遇到异常,在 MySQL 中它工作正常。
@Query(value = "SELECT p.ct,p.ctc,p.fy,"
+ " sum(p.oA + p.nA) as a,p.py "
+ " FROM P p where p.py = :py AND p.fy = :fy "
+ " AND p.B.eId in (SELECT eId FROM B WHERE o.oId in ( :oIds ) ) group by p.ct")
List<?> test(@Param("py")String py,@Param("fy") Integer fy,@Param("oIds")List<Integer> oIds);
这完全适用于 MySQL 服务器,但不适用于 MsSQL 服务器。
当我在 MsSQL 中运行时,它给出了以下异常。
SqlExceptionHelper: Column 'tbl.ctc' is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause.
[2017-10-27 09:38:38.108] boot - 83734 ERROR [http-bio-8080-exec-1] ---
任何帮助都应该感激。
谢谢
【问题讨论】:
-
@PM77-1 这是一个 Spring-data-jpa ,所以它应该适用于所有关系表。那么为什么它适用于 mysql 这是我的问题,所以它不是重复的。
-
我在 spring-data-jpa 上需要这个解决方案,这应该适用于 mysql 和 mssql。
标签: java mysql sql-server jpa spring-data-jpa