我正在尝试添加总金额的结果并将其减去总数,但我看到以下错误:
想象一下这样的事情
第一子查询:1 3 5 7 第二子查询:2 4 6
总计:(1 + 3 + 5 + 7) - (2 + 4 + 6)= 4
这是我的查询但正如我所说,我看到以下错误:
Select SUM ((
(select SUM (amount) FROM transfer tr1
where transfer_type = 'Positive' group by transfer_id)
EXCEPT
(SELECT SUM (amount) from transfer tr2
where transfer_type = 'Negative' group by transfer_id)))
如何转换查询以不查看错误:
无法对包含聚合或子查询的表达式执行聚合函数。
非常感谢提前
答案 0 :(得分:3)
您可以构建一个查询,将加法变为'Negative'
值的减法,如下所示:
SELECT
transfer_id
, SUM (
CASE 'transfer_type'
WHEN 'Positive' THEN amount
WHEN 'Negative' THEN -amount
ELSE NULL
END
) AS total
FROM transfer
GROUP BY transfer_id
现在使用了一个SUM
,加号的符号由CASE
表达式控制。