将SQL SUM从联合转换为JPQL

将SQL SUM从联合转换为JPQL,sql,eclipselink,jpql,Sql,Eclipselink,Jpql,Hi-im使用EclipseLink,需要将follow sql查询转换为JPQL SELECT sum(subtotais.peso) FROM ( SELECT SUM(t1.peso) as peso FROM table1 t1 WHERE t1.arg1 = 1 AND t1.arg4 = 2 AND t1.arg3 = 1 UNION SELECT SUM(cli.peso) as peso FROM table1 t

Hi-im使用EclipseLink,需要将follow sql查询转换为JPQL

SELECT sum(subtotais.peso) FROM 
(
    SELECT SUM(t1.peso) as peso
    FROM table1 t1
    WHERE t1.arg1 = 1 AND t1.arg4 = 2 AND t1.arg3 = 1
    UNION
    SELECT SUM(cli.peso) as peso        
    FROM table1 t2
    WHERE t2.arg1 = 1 AND t2.arg2 = 2 AND t2.arg3 = 0
) subtotais;
我试过这个

SELECT SUM(subtotais.peso) FROM 
(
    SELECT SUM(t1.peso) AS peso
    FROM Table1 t1
    WHERE t1.arg1 = 1 AND t1.arg4 = 2
    AND t1.arg3 = true

    UNION

    SELECT SUM(cli2.peso) AS peso 
    FROM Table2 t2 
    WHERE t2.arg1 = 1 AND t2.arg2 = 2 
    AND t2.arg3 = false
) subtotais;
我犯了以下错误: [200200]子表达式中缺少右括号。 [201,201]必须为范围变量声明提供标识变量。 [392,404]表达式无效,这意味着它不遵循JPQL语法。
[404408]查询包含格式不正确的结尾。

我知道jpa不支持UNION,那么我如何从UNION中退出?为什么需要UNION?如果两个总数相等,则只返回一个。这就是你真正需要的吗?