0

SQLでは、以下のようなテーブルデータがあります

id      type     amount       
1      type1       2000    
2      type1       1000     
3      type2        500    
4      type3       3000    
5      type1       2000   
6      type2        500        
7      type3       5000    
8      type1       1000    

そして、以下のようなselectステートメントでデータを取得したい

id      type     amount      current   
1      type1       2000         2000                
2      type1       1000         1000                 
3      type2        500          500                 
4      type3       3000         3000                 
5      type1       2000         3000                  
6      type2       -500            0                 
7      type3       5000         2000
8      type1      -1000         4000 

など、つまり、各タイプには金額タイプに基づいた現在の合計金額が必要であり、実行に時間がかかるため、while ループを使用する必要はありません。

for eg:

in type 1

ID      Amount      current 
1      2000-add       2000                   
2      1000-sub       1000                  
3      2000-add       3000                   
4      1000-add       4000                   

どうやってするの

4

2 に答える 2

0

このクエリはうまくいくと思います:

select id,type,amount,(select sum(amount) from mytable t1 where t1.type=t2.type and t1.id<=t2.id) currenttotal from mytable t2

于 2013-07-24T06:15:42.437 に答える