的确; 那
case是每行,因为您没有
group;
SUM(quantity)当引用单行时,在很大程度上是没有意义的。如果那是
SUM整个集合,则必须 首先
将其计算为变量。否则,您将需要考虑
SUM要将内部应用到哪个组/分区。
举一个类似的例子:
这有效:
select 1 as [a], 2 as [b], 3 as [c]
这有效:
select case [a] when 1 then [b] else [c] end from ( select 1 as [a], 2 as [b], 3 as [c]) x
但这不是:
select case [a] when 1 then sum([b]) else [c] end from ( select 1 as [a], 2 as [b], 3 as [c]) x
同样,这可行:
select sum(case [a] when 1 then [b] else [c] end) from ( select 1 as [a], 2 as [b], 3 as [c]) x
但这没有,给出与您报告相同的错误消息:
select sum(case [a] when 1 then sum([b]) else [c] end) from ( select 1 as [a], 2 as [b], 3 as [c]) x



