我正在尝试从 SQL Server 2008 中的分数列表生成摘要。
我有两个表:SQL Fiddle 链接
该ScorePerson
表包含人员的 ID 和他们从 -5 到 15 的分数。我的 SQL/存储过程的最终用户需要创建如下摘要:
Scoreband| TotalNoOfPeople | AvgScore
--------------------------------
-5 to 0 | 2 | -2
0 to 5 | 3 | 2
5 to 10 | 2 | 8
10 to 15 | 3 | 13.3
ScoreMinMax
最终用户应该可以从表格中配置得分带,即最小值和最大值。
我曾尝试使用 CASE stement 来实现这一点,但它会将摘要生成为列。II 可能需要旋转它或从多个选择语句中使用 UNION。ScoreMinMax
但是,如果向表中添加了新行,这种方法似乎无法扩展。到目前为止,我能够使用 CROSS JOINT 获得类似于上面示例的一些结果,但它并不总是产生正确的结果。
有人能指出我如何实现这一目标的正确方向吗?
ScorePerson - contains actual scores
ScoreMinMax - the configuration for min and max score bands