2017-08-08 30 views
0

在我的SQL Server 2008存儲過程中,我有一個表變量RecordID,TotalMinutes,ProcessID總結多行但保留結果中的行數

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

下面是使用SUM()Over()窗口聚合函數

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

由於它的工作的一種方式! –