2010-08-04 7 views
1

J'ai une requête SQL à traduire en JPQL, et je commence à me demander si c'est l'un des cas où je vais devoir utiliser du SQL natif. Pour référence, voici la requête SQL.Aide à la conversion de la requête SQL en JPQL

SELECT c.title, a.approval_total, r.requested_total 
FROM 
    codes c 
INNER JOIN 
(SELECT code_id, year, SUM(requested_amount) requestedTotal 
    FROM requests 
    GROUP BY code_id, year) r 
ON c.id = r.code_id 
INNER JOIN 
(SELECT code_id, year, SUM(approved_amount) approvedTotal 
    FROM approvals 
    GROUP BY code_id, year) a 
ON c.id = a.code_id 
WHERE c.title = ? AND r.fiscal_year = ? and a.fiscal_year = ? 

Est-ce que quelqu'un connaît un moyen de traduire une vue en ligne comme ces deux en JPQL? Ou alternativement une manière différente de structurer la requête qui pourrait la rendre plus facile à traduire?

Répondre

0

Je voudrais tout d'abord réécrire la requête SQL sans l'utilisation de ligne sélectionne

ne sais pas si je l'écris correctement, mais ce serait quelque chose comme ceci:

SELECT c.title, sum(a.approved_amount) as approval_total, SUM(r.requested_amount) as requested_total 
FROM codes c 
INNER JOIN requests r ON c.id = r.code_id 
INNER JOIN approvals a ON c.id = a.code_id 
WHERE c.title = ? AND r.fiscal_year = ? and a.fiscal_year = ? 
GROUP By r.code_id, r.year, a.code_id, a.year