SQLクエリをJPQL(Eclipselink)に変換するのに問題
-
27-09-2019 - |
質問
やあみんな、私は次の質問を持っています、そして私の人生のために、私はそれをJPQLに翻訳することができないようです。作業SQLは次のとおりです。
select * from TB_PRINT_DETAIL y inner join
(select JOB_ID,max(COPY_NUM) MAX_COPY_NUM from TB_PRINT_DETAIL group by JOB_ID ) x
on y.JOB_ID = x.JOB_ID and y.COPY_NUM = x.MAX_COPY_NUM
それを翻訳しようとする私の弱い試みは次のとおりです。
select o from PrintDetailEntity o inner join (select o2.jobId, max(o2.copyNumber) as
maxCopyNum from PrintDetailEntity o2 group by o2.jobId ) as x on o.jobId = o2.jobId and
o.copyNum = o2.maxCopyNum where o.printSuppressionReasonEntity is null
どんな光にもよろしくお願いしますあなたは輝くことができます!
解決
私があなたのクエリを正しく理解している場合(最大のエンティティを選択する copyNumber
同じものを持つエンティテスの間 jobId
)、以下は機能するはずです。
SELECT o
FROM PrintDetailEntity o
WHERE o.copyNumber =
(SELECT MAX(e.copyNumber) FROM PrintDetailEntity e WHERE o.jobId = e.jobId)
所属していません StackOverflow