2

このサブクエリを 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 のみでカウントする方法を見つける必要があります。誰でも私を助けることができますか?よろしくお願いします!

4

1 に答える 1

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
)
于 2012-12-02T05:59:29.733 に答える