Domanda

Ciao ragazzi, ho la seguente query e per la vita di me non riesco a tradurlo in JPQL. L'SQL di lavoro è:

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

Il mio debole tentativo di tradurre è come segue:

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

Grazie in anticipo per qualsiasi luce si può brillare!

È stato utile?

Soluzione

Se ho capito il vostro diritto di query (selezionare entità che hanno il più grande tra i copyNumber entités con la stessa jobId), il seguente dovrebbe funzionare:

SELECT o 
FROM PrintDetailEntity o 
WHERE o.copyNumber = 
    (SELECT MAX(e.copyNumber) FROM PrintDetailEntity e WHERE o.jobId = e.jobId)
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top