开发者

How do I sum the results of a select that returns multiple rows

I have a SQL variable @SumScore dec(9,4)

I am trying to assign the variable as follows:

SET @SumScore =   
        (  
            SELECT Sum(  
                (  
                    SELECT SUM(etjs.CalculatedScore * sc.PercentOfTotal) as CategoryScore   
                    FROM tblEventTurnJudgeScores etjs 
                        INNER JOIN tblJudgingCri开发者_JAVA百科teria jc ON  jc.JudgingCriteriaID = etjs.JudgingCriteriaID  
                        INNER JOIN tblScoringCategories sc ON jc.ScoringCategoryID = sc.ScoringCategoryID  
                    GROUP BY jc.JudgingCriteriaID  
                ) 
            As ComputedScore) AS SumTotalScore  
        )  

In other words the inner select is returning one column. I want the var to be assigned the SUM of all of the rows that are being return there.

I realize that this could be done with a temp table pretty easily. But is that the only way?


SELECT Sum(CategoryScore)
FROM ( subquery )


Use:

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 

There's no point to using GROUP BY jc.JudgingCriteriaID if the outer query is going to sum up everything anyway.


This worked for me like this:

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

you could also do this (to make it more robust):

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

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜