2013-03-15 99 views
0

我正在使用while循環來檢索5個值。Sql Server迭代

在循環結束時,我想將所有值加起來以產生總和。

例如

  • ITERATION_1 = 5
  • ITERATION_2 = 8
  • ITERATION_3 = 2
  • ITERATION_4 = 3
  • ITERATION_5 = 2

所以總將是20

這是我到目前爲止:

WHILE(@PROJECT_SEQ>0) 
BEGIN 

    SELECT @PROJ_ID=PROJECT_ID FROM #TmpProjects WHERE [email protected]_SEQ 


    SELECT COUNT(idDP_Entity_Activity)AS COUNT1 FROM DP_Project_Details PD 
    INNER JOIN DP_Initiation I 
     ON I.FK_Project_ID=PD.Project_ID 
    INNER JOIN DP_Entities E 
     ON E.FK_Project_ID=PD.Project_ID 
    INNER JOIN DP_Entity_Activity EA 
     ON EA.FK_idDP_Entities=E.idDP_Entities 
    WHERE [email protected]_ID 




    --SET @[email protected][email protected] 
    --SELECT @COUNT,@PROJ_ID 

    SET @[email protected]_SEQ-1 

END 
+1

你爲什麼要在循環中做這件事,而不是把它寫成單個查詢? – 2013-03-15 08:34:53

回答

1

當然,更簡單的方法是將這些項目計算在內?

SELECT COUNT(idDP_Entity_Activity)AS [TOTAL_PROJECT_COUNT] 
    FROM DP_Project_Details PD 
    INNER JOIN DP_Initiation I 
     ON I.FK_Project_ID=PD.Project_ID 
    INNER JOIN DP_Entities E 
     ON E.FK_Project_ID=PD.Project_ID 
    INNER JOIN DP_Entity_Activity EA 
     ON EA.FK_idDP_Entities=E.idDP_Entities 
    WHERE PD.Project_ID in (Select Project_ID From #TmpProjects 
          Where Seq_No <= @PROJECT_SEQ) 
+0

@巴里......謝謝你,這個邏輯沒有點擊我的腦海。我以一種完全不同的方式思考。非常感謝!!!! – Puskar 2013-03-15 08:53:39