在SELECT中添加或减去字段的值

时间:2015-08-03 17:54:39

标签: sql sql-server-2005

这是我的查询:

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

关于如何做到这一点的任何想法?感谢

1 个答案:

答案 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.FEEScase中的条件:B.FEES添加B.TYPE IN ('1', '2')B.FEES的总和,否则减去{{1}}。