如何从SQL Server列中减去固定数

时间:2013-12-29 16:22:23

标签: sql sql-server

如果我有一个像

这样的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)     

请有人可以帮助我吗?

1 个答案:

答案 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;