2012-11-30 56 views
2

我需要算上这与子查询HQL(JPA中使用Hibernate)如何计算HQL中的子查询?

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计数。 任何人都可以帮助我吗?提前谢谢了 !

+0

您是否找到了一种最终没有绘制完整结果集的方法? – ndtreviv

回答

0

也许应该在回答你的问题之前要求更多的细节,但似乎我没有足够的要点在这里(或声誉)做像其他人一样。无论如何,下面是我的想法。

假设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 
)