总结前一行sql server

时间:2013-03-07 12:14:24

标签: sql-server

我需要在sql 2005中总结前面的行。 这是我的表

id  date     valuein     valueout    misstotal     
5   2/2/2013    0            500       -500    
2  25/2/2013    0            300       -300
7  25/2/2013    900          0          900
4  25/2/2013   2000          0          2000

misstotal = ( valuein - valueout)

这不是问题

我希望列在total列中具有如下表所示的总余额。

id  date     valuein     valueout    misstotal     total
5   2/2/2013    0            500       -500         -500
2  25/2/2013    0            300       -300         -800
7  25/2/2013    900          0          900          100
4  25/2/2013   2000          0          2000         2100

那么这笔钱的代码是什么?

1 个答案:

答案 0 :(得分:0)

此博客文章为您提供了许多用于计算SQL Server 2005中的运行总计的选项:

http://geekswithblogs.net/Rhames/archive/2008/10/28/calculating-running-totals-in-sql-server-2005---the-optimal.aspx

一种好方法是将数据插入临时表,然后更新此表以填充正在运行的总列,如下所示:

SET @RunningTotal = 0 

UPDATE @TmpTable
SET @RunningTotal = total = @RunningTotal + misstotal
FROM @TmpTable

SELECT * FROM @TmpTable