Sql 在子查询中使用SUM
运行此查询时出现错误。 错误:ORA-00937不是单个组功能 我的代码是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
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'
)