条件 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
我需要在求和时过滤特定的行。 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