2013-10-18 117 views
2

我想我積累數據,你可以看到下面有源表table1的SQL Server 2008 - 積累列

  1. 什麼是做到這一點的最好查詢?
  2. 可以動態地做到這一點 - 當我添加更多類型的術語?

表1

ID | term | value 
----------------------- 
1 | I | 100 
2 | I | 200 
3 | II | 100 
4 | II | 50 
5 | II | 75 
6 | III | 50 
7 | III | 65 
8 | IV | 30 
9 | IV | 45 

而且結果應該是象下面這樣:

YTD | Acc Value 
------------------ 
I-I | 300 
I-II | 525 
I-III| 640 
I-IV | 715 

感謝

+1

的SQL Server的什麼版本? –

+0

指定您的sql服務器版本。在2008年,已經引入了窗口函數,這對於這項任務非常有用,而在<= 2008版本中,您必須多出一點汗水。 –

回答

3
select 
     (select min(term) from yourtable) +'-'+term,  
     (select sum(value) from yourtable t1 where t1.term<=t.term) 
    from yourtable t 
    group by term