向Report Builder报告添加整体平均行

时间:2014-03-10 15:19:20

标签: sql sql-server reporting-services report reportbuilder3.0

我需要帮助在Report Builder 3.0中创建整体平均值。我有一个以下列格式返回数据的查询:

Major       Num Of Students     Max GPA     Min GPA     Avg GPA
----------  ------------------  ----------  ----------  -----------
Accounting  89                  4.0         2.3         3.68
Business    107                 4.0         2.13        3.23
CIS         85                  3.98        2.53        3.75

我在报告生成器中添加了一行,显示学生总数,总体最高GPA和总体最低GPA。但我不能简单地在Avg GPA专栏上运行Avg功能,因为它需要考虑整体平均学生的数量。我相信我需要做类似以下的事情(伪代码):

foreach ( row in rows ) {
    totalGpa      += row.numOfStudents * row.avgGpa
    totalStudents += row.numOfStudents
}

overallAvgGpa = totalGpa / totalStudents

有谁知道我在报告中如何做到这一点?

1 个答案:

答案 0 :(得分:1)

在你的情况下,你需要加权平均值,如总计行中所示:

=Sum(Fields!numOfStudents.Value * Fields!avgGpa.Value)
  / Sum(Fields!numOfStudents.Value)

你可以看到我正在为每一行创建表达式Fields!numOfStudents.Value * Fields!avgGpa.Value,将其相加,然后除以学生总数。

在您的情况下,这会给(89 * 3.68 + 107 * 3.23 + 85 * 3.75) / (89 + 107 + 85),即3.53,这似乎是正确的。