سؤال

مرحبًا يا شباب ، لدي الاستعلام التالي ولوحيتي ، لا يمكنني ترجمته إلى 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)
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top