Sql 在子查询中使用SUM

Sql 在子查询中使用SUM,sql,oracle,Sql,Oracle,运行此查询时出现错误。 错误:ORA-00937不是单个组功能 我的代码是 SELECT SUM(UL.ACTION_CODE*UL.MASS_NET) AS WINDER_NET , SUM(U.MASS_SCALED) AS SCALED_NET, ( SELECT SUM(JRL.MASS_CALCULATED) FROM JUMBOREELLOG JRL WHERE JRL.DATE

运行此查询时出现错误。 错误:ORA-00937不是单个组功能

我的代码是

SELECT 
    SUM(UL.ACTION_CODE*UL.MASS_NET) AS WINDER_NET , 
    SUM(U.MASS_SCALED) AS SCALED_NET,
    (
        SELECT SUM(JRL.MASS_CALCULATED) 
        FROM JUMBOREELLOG JRL 
        WHERE 
            JRL.DATE_TRANSACTION >= to_date('08/01/2020 06:00' , 'dd/mm/yyyy HH24:MI')
            AND JRL.DATE_TRANSACTION < to_date('09/01/2020 06:01' , 'dd/mm/yyyy HH24:MI')
            AND JRL.JUMBO_TRANSACTION_TYPE IN('TU','HY') 
            AND JRL.STATION_CODE = 'PM1P'
    ) AS JUMBO_TOTAL
FROM UNIT U
INNER JOIN  UNITLOG UL ON U.UNIT_ID = UL.UNIT_ID
WHERE 
    UL.DATE_TRANSACTION >= to_date('08/01/2020 06:00' , 'dd/mm/yyyy HH24:MI')
    AND UL.DATE_TRANSACTION < to_date('09/01/2020 06:01' , 'dd/mm/yyyy HH24:MI')

预期输出为三列Winder_Net、Scaled_Net和Jumbo_Total,带有一些整数值。如果有人在这里指导我如何创建表格。

很有趣。不清楚您为什么不包括Group by;但是,您的查询在其他DBMS(如SQL Server或MySQL)中是正确的。我建议使用交叉连接重写它:


您可以找到一个模拟您的问题的示例,并且可以使用交叉连接找到解决方案

有趣。不清楚您为什么不包括Group by;但是,您的查询在其他DBMS(如SQL Server或MySQL)中是正确的。我建议使用交叉连接重写它:

您可以找到一个模拟您的问题的示例,并且可以使用交叉连接找到解决方案

SELECT *
FROM (
    SELECT 
        SUM(UL.ACTION_CODE*UL.MASS_NET) AS WINDER_NET , 
        SUM(U.MASS_SCALED) AS SCALED_NET,
    FROM UNIT U
    INNER JOIN  UNITLOG UL ON U.UNIT_ID = UL.UNIT_ID
    WHERE 
        UL.DATE_TRANSACTION >= to_date('08/01/2020 06:00' , 'dd/mm/yyyy HH24:MI')
        AND UL.DATE_TRANSACTION < to_date('09/01/2020 06:01' , 'dd/mm/yyyy HH24:MI')
) 
CROSS JOIN
(
    SELECT SUM(JRL.MASS_CALCULATED) JUMBO_TOTAL
    FROM JUMBOREELLOG JRL 
    WHERE 
        JRL.DATE_TRANSACTION >= to_date('08/01/2020 06:00' , 'dd/mm/yyyy HH24:MI')
        AND JRL.DATE_TRANSACTION < to_date('09/01/2020 06:01' , 'dd/mm/yyyy HH24:MI')
        AND JRL.JUMBO_TRANSACTION_TYPE IN('TU','HY') 
        AND JRL.STATION_CODE = 'PM1P'
)