如果我有一个像
这样的SQL Server表Code Name Value
--------------------------------------------
1 A 10
2 B 20
3 C 40
4 d 70
如何从SQL Server列中减去100
之类的固定数字,以获得这样的结果
Code Name Value net
--------------------------------------------
1 A 10 90 (100 - 10)
2 B 20 70 (90 - 20)
3 C 40 30 (70 - 40)
4 d 70 -40 (30 - 70)
请有人可以帮助我吗?
答案 0 :(得分:4)
您可以使用相关子查询执行此操作:
select t.*,
(100 - (select sum(value)
from table t2
where t2.code <= t.code
)
) as net
from table t;
在SQL Server 2012中,您可以使用累积总和来执行此操作:
select t.*
(100 - sum(value) over (order by t.code)
) as net
from table t;