Estou desenvolvendo uma aplicação com EclipseLink(JPA 2) e gostaria de sugestões de como converter um “comando” SQL para JPQL ou outra maneira de resolver isso.
o SQL:
INSERT INTO medicao(cod_medicao_referencia, cod_os, cod_mos_item, quantidade_total, valor_total)
(
SELECT mr.cod_medicao_referencia,
os.cod_os,
ms.cod_mos_item,
sum(
ms.medida1*COALESCE(ms.medida2,1)*COALESCE(ms.medida3,1)
) AS quantidade_total,
trunc(
sum(
(
(CASE
WHEN ms.pagar_mobra = true
THEN mp.valor_mobra
ELSE 0
END)+
(CASE
WHEN ms.pagar_material= true
THEN mp.valor_material
ELSE 0
END)
)*(
ms.medida1*COALESCE(ms.medida2,1)*COALESCE(ms.medida3,1)
)
),2
) as valor_total
FROM medicao_servicos ms
INNER JOIN medicao_referencia mr
ON ms.cod_local=mr.cod_local
INNER JOIN referencia r
ON mr.cod_referencia=r.cod_referencia
INNER JOIN ordem_servico os
ON ms.cod_medicao_recurso=os.cod_medicao_recurso
LEFT JOIN mos_preco mp
ON ms.cod_mos_item=mp.cod_mos
WHERE ms.data_pagamento BETWEEN mr.data_inicial AND mr.data_final
AND ms.cod_motivo_glosa IS NULL
AND mr.cod_referencia = 1
GROUP BY ms.cod_mos_item,mr.cod_medicao_referencia,os.cod_os
ORDER BY mr.cod_medicao_referencia,os.cod_os,ms.cod_mos_item
)