2010-08-04 72 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