亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

計算SQL Server中的運行總計

計算SQL Server中的運行總計

烙印99 2019-05-27 11:02:24
想象一下下表(稱為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和上面的“更新技巧”示例
查看完整描述

3 回答

?
智慧大石

TA貢獻1946條經驗 獲得超3個贊

在SQL Server 2012中,您可以將SUM()OVER()子句一起使用。

select id,
       somedate,
       somevalue,
       sum(somevalue) over(order by somedate rows unbounded preceding) as runningtotalfrom TestTable

SQL小提琴


查看完整回答
反對 回復 2019-05-27
  • 3 回答
  • 0 關注
  • 610 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號