添加或减去 SELECT 中字段的值
Adding or subtracting the value of a field in a SELECT
这是我的查询:
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,我想从 TOTALFEES
.
中减去 B.FEES
关于如何做到这一点有什么想法吗?谢谢
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.TYPE IN ('1', '2')
,则将 B.FEES
添加到总和,否则减去 B.FEES
。
这是我的查询:
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,我想从 TOTALFEES
.
B.FEES
关于如何做到这一点有什么想法吗?谢谢
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.TYPE IN ('1', '2')
,则将 B.FEES
添加到总和,否则减去 B.FEES
。