2010-08-04 66 views
1

我有一個SQL查詢需要轉換成JPQL,並且我開始懷疑這是否只是我必須使用本機SQL的情況之一。作爲參考,這裏是SQL查詢。幫助將SQL查詢轉換爲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 = ? 

有誰知道一種方法來將這兩個行視圖轉換成JPQL嗎?或者,也可以採用不同的方式來構建查詢,這可能會使翻譯更容易?

回答

0

我首先重寫SQL查詢,而無需使用內嵌的選擇

不知道我是否正確地寫它,但它會是這樣的:

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