2017-08-08 10 views
0

SQL Server 2008ストアドプロシージャでは、RecordIDTotalMinutesProcessIDのテーブル変数があります。複数の行を合計しても結果の行数を保持する

Declare @tblSum table(RecordID int, TotalMinutes int, ProcessID int) 

RecordIDは私の主キーであり、合計の分は合計分であり、私は異なるプロセスを持っていますが、これらのプロセスはデータに対して複数回繰り返されます。ここで

は私のデータの例である:

RecordID  TotalMinutes  ProcessID 
-------------------------------------------- 
    1    10   1   
    2    20   1  
    3    30   1 
    4    10   2  
    5    40   2 
    6    10   2 
    7    10   3   
    8    55   3  
    9    60   3  
    10    15   4  

私の計画は、同じProcessIDの持つすべてのデータを合計するか、追加することで、データを返すと同じようFinalMinutes列を持つ新しいテーブル変数の上に置くことです下の表:

RecordID  TotalMinutes  ProcessID  FinalMinutes 
----------------------------------------------------- 
    1    10   1   60 
    2    20   1   60 
    3    30   1   60 
    4    10   2   80 
    5    60   2   80 
    6    10   2   80 
    7    10   3   125 
    8    55   3   125 
    9    60   3   125 
    10    15   4   15 

結果を4行にカットするので、グループを作成することはできません。私は行の数を保持する必要があり、それが持っているすべてのデータ、私はちょうど新しいテーブル変数にFinalMinutes列を追加します。

答えて

2

は、ここでそれが動作

Select *, 
     FinalMinutes = sum(TotalMinutes)over(partition by ProcessID) 
From yourtable 
+0

感謝をSUM()Over()ウィンドウ集計関数を使用して、一つの方法です! –

関連する問題