想象一下下表(稱為TestTable):id somedate somevalue-- -------- ---------45 01/Jan/09 323 08/Jan/09 512 02/Feb/09 077 14/Feb/09 739 20/Feb/09 3433 02/Mar/09 6我想要一個以日期順序返回運行總計的查詢,例如:id somedate somevalue runningtotal-- -------- --------- ------------45 01/Jan/09 3 323 08/Jan/09 5 812 02/Feb/09 0 877 14/Feb/09 7 15 39 20/Feb/09 34 4933 02/Mar/09 6 55計算SQL Server中的運行總計我知道在SQL Server 2000/2005 / 2008中有各種方法可以做到這一點。我對使用aggregate-set-statement技巧的這種方法特別感興趣:INSERT INTO @AnotherTbl(id, somedate, somevalue, runningtotal) SELECT id, somedate, somevalue, null FROM TestTable ORDER BY somedateDECLARE @RunningTotal intSET @RunningTotal = 0UPDATE @AnotherTblSET @RunningTotal = runningtotal = @RunningTotal + somevalueFROM @AnotherTbl...這非常有效但我聽說有這方面的問題,因為你不一定能保證UPDATE語句將以正確的順序處理行。也許我們可以就這個問題得到一些明確的答案。但也許人們可以建議其他方式?編輯:現在使用帶有設置的SqlFiddle和上面的“更新技巧”示例
添加回答
舉報
0/150
提交
取消