java - 如何统计HQL中的子查询?

标签 java spring hibernate jpa hql

我需要用 HQL 计算这个子查询(在 JPA 中使用 Hibernate)

SELECT DISTINCT s.customerName, s.customerCode, MAX(s.orderDate) as last_order_date 
FROM XoopsSalesOrder s 
GROUP BY s.customerCode 
HAVING MAX(s.orderDate) 
BETWEEN '2012-7-1' AND '2012-10-1' AND MAX(s.orderDate) NOT BETWEEN '2012-10-1' AND CURRENT_DATE "

我没有使用 Hibernate lib,所以我必须找到办法只用 HQL 来计算。 谁能帮帮我?非常感谢!

最佳答案

也许应该在回答您的问题之前询问更多详细信息,但似乎我在这里没有足够的积分(或声誉)来像其他人那样做。无论如何,以下是我的想法。

假设有 XoopsSalesOrder.Id 作为主键并且 XoopsSalesOrder.customerCode 是唯一的。

select s.customerName, s.customerCode, s.orderDate as last_order_date 
from XoopsSalesOrder s 
where s.Id in (
  select s2.Id from XoopsSalesOrder s2 
  where 
  s2.orderDate = max(s2.orderDate) 
  and s2.orderDate between '2012-7-1' AND '2012-10-1' 
  and s2.orderDate not between '2012-10-1' AND current_date 
  group by s2.customerCode
)

关于java - 如何统计HQL中的子查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13646548/

相关文章:

spring - 不使用 spring batch + spring boot + sql server 应用程序运行 DDL 脚本

java - 如何在 Hibernate 中注释具有相同类型实体集的实体

java - 什么是 OutOfMemoryError 以及如何调试和修复它

java - 我第一次尝试玩 Java 游戏时,在读取图像时以 7 fps 结束?

java - 在 Java 中打开命令提示符后,在命令提示符中输入命令?

java - AlertDialog.Builder show(),在单击处理程序中崩溃

java - 使用@ComponentScan元注释的Spring自定义@Enable批注

java - 将@RequestParam 用于多部分文件是正确的方法吗?

hibernate - 使用Grails框架在Hibernate/Goram中加入SQL运算?

java - 多对多关联中按 <集合元素的属性> 排序