这是我的查询:
SELECT
C.CLIENTNUMBER,
(SELECT SUM(B.FEES) WHERE B.TYPE IN ('1', '2')) AS TOTALFEES
FROM CLIENTS C
INNER JOIN BILLS B ON B.CLIENTNUMBER = C.CLIENTNUMBER
GROUP BY C.CLIENTNUMBER
这很简单,但这就是问题所在。如果B.TYPE
为1或2,我想将B.FEES
添加到TOTALFEES
。但如果它是3,我想从B.FEES
中减去TOTALFEES
。
关于如何做到这一点的任何想法?感谢
答案 0 :(得分:4)
SELECT C.CLIENTNUMBER,
SUM(case when B.TYPE IN ('1', '2')
then B.FEES
else -B.FEES
end) AS TOTALFEES
FROM CLIENTS C
INNER JOIN BILLS B ON B.CLIENTNUMBER = C.CLIENTNUMBER
GROUP BY C.CLIENTNUMBER
这总结了所有B.FEES
但case
中的条件:B.FEES
添加B.TYPE IN ('1', '2')
到B.FEES
的总和,否则减去{{1}}。