我想在下面的查询中对 T.CLS 和 CLS 的所有行求和,但我无法这样做,因为它显示的不是 Sony 组函数。 我该如何解决这个问题?
SELECT A.PROD,
A.ID AS ACCOUNT,
A.NAME AS NAME,
T.PDATE AS DATE,
A.CODE,
T.CLS,
CASE
WHEN A.CODE != 'abc' THEN
(SELECT DISTINCT col
FROM table1
WHERE CODE2 = A.CODE
AND TOCODE = 'ABC'
AND ETYPE = 'S') * T.CLS
ELSE CLS
END AS EQB
FROM UTTABLE T JOIN ACTABLE A ON T.AID = A.ID
最佳答案
可以使用coarse的解析函数:
SELECT A.PROD,
A.ID AS ACCOUNT,
A.NAME AS NAME,
T.PDATE AS DATE,
A.CODE,
T.CLS,
sum(T.CLS) over (partition by A.ID) "SUMM",
count(T.CLS) over (partition by A.ID) "amount",
CASE
WHEN A.CODE != 'abc' THEN
(SELECT DISTINCT col
FROM table1
WHERE CODE2 = A.CODE
AND TOCODE = 'ABC'
AND ETYPE = 'S') * T.CLS
ELSE CLS
END AS EQB
FROM UTTABLE T JOIN ACTABLE A ON T.AID = A.ID
如果要使用GROUP BY,则所有字段(分组数据除外)都必须写入GROUP BY
关于mysql - 对嵌套 SQL Oracle 查询中的多行值求和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58444234/