我试着从一个表中得到金额,在这个表中,我想对一些满足特定条件的金额求和,而如果不满足条件,则保留其他金额的未求和金额。
我试过这个解决方案,但即使它满足条件,它仍然不能总结。
SELECT
price_type,
CASE trim(price_type)
WHEN 'TYPE1' THEN sum(bill_amt)
ELSE bill_amt
END bill_amt
FROM (
SELECT
price_type,
bill_amt
FROM price_val_tbl
)
GROUP BY price_type, bill_amt
预期产量:
PRICE_TYPE BILL_AMT
========== ========
TYPE1 50
TYPE2 100
TYPE2 200
实际产量
PRICE_TYPE BILL_AMT
========== ========
TYPE1 100
TYPE1 -50
TYPE2 100
TYPE2 200
2条答案
按热度按时间busg9geu1#
这是你想要的案子
UNION ALL
:你需要的理由
UNION ALL
是因为您在每一行上没有唯一的标识符。您可以使用如下子查询和聚合:然而,关于它在做什么,这还不太清楚。
kxe2p93d2#
也可以使用条件
GROUP BY
具体如下: