2009-12-23 53 views
3

我有一個SQL變量@SumScore dec(9,4)如何總結一個選擇返回多行

我試圖變量如下分配的結果:

SET @SumScore = 
     ( 
      SELECT Sum( 
       ( 
        SELECT SUM(etjs.CalculatedScore * sc.PercentOfTotal) as CategoryScore 
        FROM tblEventTurnJudgeScores etjs 
         INNER JOIN tblJudgingCriteria jc ON jc.JudgingCriteriaID = etjs.JudgingCriteriaID 
         INNER JOIN tblScoringCategories sc ON jc.ScoringCategoryID = sc.ScoringCategoryID 
        GROUP BY jc.JudgingCriteriaID 
       ) 
      As ComputedScore) AS SumTotalScore 
     ) 

換句話說內部的選擇是返回一列。我想爲var分配所有正在返回的行的SUM。

我意識到這可以用臨時表很容易地完成。但這是唯一的方法嗎?

回答

1

用途:

SET @SumScore = SELECT SUM(etjs.CalculatedScore * sc.PercentOfTotal) as CategoryScore 
        FROM tblEventTurnJudgeScores etjs 
        JOIN tblJudgingCriteria jc ON jc.JudgingCriteriaID = etjs.JudgingCriteriaID 
        JOIN tblScoringCategories sc ON jc.ScoringCategoryID = sc.ScoringCategoryID 

有沒有必要使用GROUP BY jc.JudgingCriteriaID如果外部查詢將會反正總結了一切。

+0

感謝。那是個很好的觀點。集團由走了。 – 2009-12-23 02:24:36

2
SELECT Sum(CategoryScore) 
FROM (subquery) 
0

這個工作對我來說是這樣的:

select sum(myColumn) from MyTable where MyTableID = 'some value' 

你也可以這樣做(以使其更加堅固):

select sum(isnull(myColumn,0)) from MyTable where MyTableID = 'some value'