条件 WHERE 条件 SQL 脚本

Conditional WHERE condition SQL script

我需要在求和时过滤特定的行。 Table 结构和数据如下。

我想对 WHERE [Reason] = 'Order Placed' AND [No Of Month Old] = 1 行以外的所有行的 [Gain/Lost] 列值求和。

对于以下情况,值将为 -560。

SELECT UserID,
       SUM(CASE WHEN [Reason] = 'Order Placed' AND [No Of Month Old] = 1
                THEN 0
                ELSE [Gain/Lost]
            END)
FROM tt
GROUP BY UserID
select userid, sum([Gain/Lost])
from tablename
where [Reason] <> 'Order Placed'
   or [No Of Month Old] <> 1
group by userid

你用英语很好地描述了你的情况 - 现在你只需要在 SQL 中写同样的东西:

SELECT SUM([Gain/Lost]
FROM   mytable
WHERE  NOT ([Reason] = 'Order Placed' AND [No Of Month Old] = 1)
SELECT SUM([GAIN/LOST]) as 'Gain/Lost'
FROM YourTable yt
WHERE REASON <> 'Order Placed' AND [No of Month Old] <> 1
GROUP BY UserID