如何通过Group By值重新返回值

时间:2009-12-23 02:51:09

标签: sql-server tsql sql

我正在尝试从表中的11行确定一个SCORE。

使用ScoringCategoryID列将这11行聚合成五行,如下所示......

ScoringCategoryID   CategoryScore       PercentOfTotal
---------------------------------------------------------
7                   15.00               0.40  
8                   15.00               0.30  
9                   14.50               0.20  
10                  4.50                0.05  
11                  4.50                0.05  

我需要从这些数据中获取RawScore。不幸的是,我的客户不希望我仅仅将CategoryScore列总计(总计53.5)。您是否看到PercentOfTotal列的总和为1.因此,每个ScoringCategoryID都有一个权重。所以总得分...... ScoringCategoryID应该是得分的40%。 ScorCatID 8应该是总数的30%等。

我不确定如何在查询中执行此操作。我如何获得分数?

这是当前的查询...

SELECT jc.ScoringCategoryID, 
       SUM(etjs.CalculatedScore) as CategoryScore,  
       Max(sc.PercentOfTotal) PercentOfTotalScore  
  FROM tblEventTurnJudgeScores etjs  
INNER JOIN tblJudgingCriteria jc ON  jc.JudgingCriteriaID = etjs.JudgingCriteriaID  
INNER JOIN tblScoringCategories sc ON jc.ScoringCategoryID = sc.ScoringCategoryID  
WHERE etjs.EventTurnJudgeID = 1068  
GROUP BY jc.ScoringCategoryID  

这应该被汇总成一个分数。任何想法。

1 个答案:

答案 0 :(得分:1)

SELECT SUM(CategoryScore * PercentOfTotal) as RawScore
  FROM ( .....subquery here..... )