0

サブクエリが必要なこのHQLがあります。順番にサブクエリを作成することは違法であることは知っていますが、その方法がわかりません

SELECT OBJECT(l) FROM InboundNotification l 
 INNER JOIN l.item item 
 WHERE l.job = ? ORDER BY (SELECT SUM(itemInst.qty) 
 FROM ItemInst itemInst 
  WHERE itemInst.receivedFromNotification_id = l.id) DESC, item.localId DESC

順番にサブクエリがあるため、上記は失敗します。これが機能するように再構成するにはどうすればよいですか?

Java コードでのソートは、ほぼ同じくらい効率的ですが、ここではオプションではありません。

4

1 に答える 1

0

わかりました、私はhqlの概念を持っていませんが、この質問が長い間答えられていないことを考えると、他のクエリ言語がここに飛び込むようなものだと思います.

クエリを次のように書き直していただけますか。

SELECT OBJECT(l), SUM(itemInst.qty) theSum
FROM InboundNotification l
INNER JOIN l.item item WHERE l.job = ?
INNER JOIN ItemInst on ItemInst.KEY = l.KEY
WHERE itemInst.receivedFromNotification_id = l.id)
GROUP BY OBJECT(l)
ORDER BY theSum

whereItemInst.KEY = l.KEYは、状況に適した関係を示しています (そのような関係が存在する場合)

于 2012-10-06T18:38:46.653 に答える