2009-12-23 51 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'