2013-03-07 54 views
0

我需要在SQL 2005 这是我表总结以前的行和以前行的SQL Server

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 

那么这样做的代码是什么?

回答

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 
+0

虽然这可能会回答这个问题,[这将是更可取的](http://meta.stackexchange.com/q/8259)包括答案的基本部分这里,并提供链接供参考。 – Taryn 2013-03-07 12:25:19