我需要用 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/