【问题标题】:SSRS: Table of group aggregates with grand totalSSRS:具有总计的组聚合表
【发布时间】: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 中使用数据透视表完成(这是最初检索数据的方式......手动......)

如果我的列包含 projectStatusprojectAge 的表中有相同的源数据,我可以生成查询以获取 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

请注意,总计是根据整个数据集计算的,而不仅仅是分组数据 - 这主要适用于平均值,因为它恰好适用于 COUNTMAX 列。

现在,如果我尝试在 SSRS 中生成上表,使用前一个查询很容易生成上表没有总计。但是,现在如何添加总计?


我可以尝试另一种方法,使用更通用的数据集查询,例如:

SELECT projectStatus AS statusCategory, projectAge AS daysInCurrentStatus FROM projects

然后在我的表中使用聚合函数并让 SSRS 自己进行聚合并提供原始数据的总计。我现在遇到一个新问题。设置我的桌子的正确方法是什么?我将 [statusCategory] ​​的分组称为“Group1”,使用这样的范围聚合函数:

它正确地生成了总计,但现在我遇到了一个新问题:它显示了每一行的平均值,而不是每个组/范围仅显示一个单元格。 这是 SSRS 的本意吗?如果是,我该怎么做?

...

【问题讨论】:

    标签: sql-server reporting-services grouping


    【解决方案1】:

    您需要稍微弄乱一下以获得正确的布局,但您基本上需要一个组页眉或页脚来显示组聚合。

    如果您右键单击 [statusCategory] ​​旁边的行并选择Insert Row > Outside Group - Above,它将为您创建一个组标题。然后只需将您的聚合表达式添加到正确的列中,例如=Count(Fields!projectStatus.Value),然后您可以在详细信息行上设置行可见性以隐藏,如果您不想看到它。

    你最终应该得到一个与此类似的布局。

    中间行(详细信息)可见性设置为 false

    【讨论】:

    • 你中了钉子!只是,我需要做的是Insert Row > Inside Group - Above 而不是外部组。这完全符合我的预期。
    【解决方案2】:

    你在正确的轨道上。您现在有两个行组。您需要做的就是删除内部的,因为它没有按任何内容分组。换句话说,它对每一行原始数据都重复。

    因此名为“详细信息”的行组 - 将其删除或在属性中单击“添加”并将其按 1 分组。这将折叠这些行并执行您所期望的操作。

    【讨论】:

      猜你喜欢
      • 2013-07-04
      • 1970-01-01
      • 1970-01-01
      • 2023-03-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多