2017-09-16 87 views
1

得到總和行我有一個表,它看起來像下面SQL通過

ID | PName | Price 
___+_______+______ 
1 |some |2000 
2 |some |3000 
3 |some |250 

現在我需要查詢得到以下結果

ID | PName | Price |Total Price 
___+_______+________+____________ 
1 |some |2000 |2000 
2 |some |3000 |5000 
3 |some |250  |5250 


Total Price= Price + Total Price 

如何使用SQL查詢

得到上述結果
+0

sql server 2014 – ThusharaHettigoda

回答

6

你似乎想要一個累計總和。

select t.*, 
     sum(price) over (order by id) as total_price 
from t; 

SQL Server已支持,因爲SQL Server的這個ANSI標準語法2012

在早期版本中,你可以使用相關子查詢:

select t.*, 
     (select sum(t2.price) 
     from t t2 
     where t2.id <= t.id 
     ) as total_price 
from t; 

編輯,因爲這是支持:

正如約翰所說,如果你想每個pname單獨總和,那麼語法應該是:

select t.*, 
     sum(t.price) over (partition by p.name order by t.id) as total_price 
from t; 
+0

未在問題中指定,但也許PARTITION by PName? –

+0

謝謝每位幫助我的人@Gordon – ThusharaHettigoda