Set*_*man 5 sql t-sql sql-server
我有一个 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
)
Run Code Online (Sandbox Code Playgroud)
换句话说,内部选择返回一列。我希望为 var 分配正在返回的所有行的 SUM。
我意识到这可以很容易地用临时表来完成。但这是唯一的方法吗?
使用:
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
Run Code Online (Sandbox Code Playgroud)
GROUP BY jc.JudgingCriteriaID如果外部查询无论如何都要总结所有内容,那么使用它就没有意义。