2016-07-06 15 views
0

私は別の列の第一レコードと合計を一列の第二の記録をしようとし、ここで新しい列に1つの列の1番目のレコードを別の列の2番目のレコードと合計する方法は?

を結果を格納していますは、例えば、SQL Serverのテーブルには、私がしようとしています

Emp_Code Emp_Name Month   Opening_Balance 
G101  Sam   1    1000    
G102  James  2    -2500    
G103  David  3    3000  
G104  Paul   4    1800  
G105  Tom   5    -1500  

です新しいReserve欄に以下のような出力が得

Emp_Code Emp_Name Month   Opening_Balance Reserve 
G101  Sam   1    1000    1000  
G102  James  2    -2500    -1500   
G103  David  3    3000    1500 
G104  Paul   4    1800    3300 
G105  Tom   5    -1500    1800 

実際Reserve列を計算するためのルールがある

0その
  1. Month-1のために、それはあなたが累積合計をしたいように見えるヶ月の残りのために= Reserve for Month-1そのReserve for Month-2 + Opening Balance for Month-2
+0

質問にSQL Serverのバージョン番号を付けてください。 –

+3

[SQL Serverでの実行中の合計の計算]の可能な複製(http://stackoverflow.com/questions/860966/calculate-a-running-total-in-sql-server) –

答えて

3

Opening Balance

  • と同じです。 SQL Serverの2012+では、あなたはどうなる:

    select t.*, 
         sum(opening_balance) over (order by [Month]) as Reserve 
    from t; 
    

    は、以前のバージョンでは、あなたが相関サブクエリまたはapplyでこれを行うだろう:

    select t.*, 
         (select sum(t2.opening_balance) from t t2 where t2.[Month] <= t.[Month]) as reserve 
    from t; 
    
  • 0

    あなたは自分を行うことができますが参加します。

    SELECT t.Emp_Code, t.Emp_Name, t.Month, t.Opening_Balance, t.Opening_Balance + n.Reserve 
    FROM Table1 t 
    JOIN Table2 n 
    ON t.Month = n.Month - 1 
    
    関連する問題