【发布时间】:2016-10-18 05:34:22
【问题描述】:
我正在使用 SSRS 2014。我的最终目标是获得如下所示的表格:
Project Status # of Projects Oldest Project Avg Project Age
Status 1 27 82 16
Status 2 9 29 6
Status 3 13 112 25
Status 4 33 68 16
Status 5 1 63 63
Status 6 1 27 27
Grand Total 84 112 17
这样的表格,包括总计,可以在 Excel 中使用数据透视表完成(这是最初检索数据的方式......手动......)
如果我的列包含 projectStatus 和 projectAge 的表中有相同的源数据,我可以生成查询以获取 SQL 中除总计之外的所有数据:
SELECT projectStatus, COUNT(projectStatus), MAX(projectAge), AVG(projectAge)
FROM projects
GROUP BY projectStatus
如果我想添加总计,我可以使用以下查询执行UNION:
SELECT 'Grand Total', COUNT(projectStatus), MAX(projectAge), AVG(projectAge)
FROM projects
请注意,总计是根据整个数据集计算的,而不仅仅是分组数据 - 这主要适用于平均值,因为它恰好适用于 COUNT 和 MAX 列。
现在,如果我尝试在 SSRS 中生成上表,使用前一个查询很容易生成上表没有总计。但是,现在如何添加总计?
我可以尝试另一种方法,使用更通用的数据集查询,例如:
SELECT projectStatus AS statusCategory, projectAge AS daysInCurrentStatus FROM projects
然后在我的表中使用聚合函数并让 SSRS 自己进行聚合并提供原始数据的总计。我现在遇到一个新问题。设置我的桌子的正确方法是什么?我将 [statusCategory] 的分组称为“Group1”,使用这样的范围聚合函数:
它正确地生成了总计,但现在我遇到了一个新问题:它显示了每一行的平均值,而不是每个组/范围仅显示一个单元格。 这是 SSRS 的本意吗?如果是,我该怎么做?
...
【问题讨论】:
标签: sql-server reporting-services grouping