SSRS - 添加总行+总百分比

SSRS - Adding total row + percentage of the total

我有两种水果——香蕉和苹果。我的报告显示(使用矩阵)某些人有多少每种类型,使用这个测试查询:

SELECT 1 AS fruits, 1 AS bananas, 0 AS apples, 'person_1' AS people UNION ALL
SELECT 1 AS fruits, 0 AS bananas, 1 AS apples, 'person_2' AS people

我想删除 "fruits" 字段并在上面的行中添加自动计算两种类型的总和。另外,加上每种水果占总量的百分比,即每个人拥有的香蕉总量占多少。

我怀疑这是通过对行进行分组以某种方式完成的,但我无法弄清楚我需要对行使用哪些组。我没有明显的按列分组。

有什么想法吗?

按照下图设置矩阵:

下面的详细设计视图显示了按 row/columns 分组:

结果应该是这样的:

首先,数据通常采用如下格式:

SELECT 'person_1' AS people, 'bananas' AS FruitType, 1 AS FruitCount
UNION ALL
SELECT 'person_2' AS people, 'apples' AS FruitType, 1 AS FruitCount

使用这样的数据集,构建一个包含矩阵的报告,该矩阵在行中显示 FruitTypes,在列中显示人员,并将 FruitCount(其总和)显示为数据。这将自动创建一个 FruitType 行组和一个 people 列组:

Right-click 在 行组 列组 下的两个组,以向每个组添加总计。对于 FruitType 组 select Add Total Before 和 people 组 select Add Total After:

将我在上一个屏幕截图中 select 编辑的单元格重命名为 TotalByPerson([people] 列中的总数)和 TotalByFruitType([FruitType] 行中的总数)。此外,将总计行和总计列中的总计重命名为 GrandTotal。这将使百分比公式更具可读性。

现在,要为百分比添加一行,请右键单击 [FruitType] 行的 select 行或在 selected 行下方的组内插入一行:

您可以拆分合并的单元格,为百分比行输入单独的标题,例如 [FruitType] %:

现在,只缺少两个公式,您可以在相应的 Expression window:

中定义它们
  • 在[人员]栏中:=ReportItems!FruitCount.Value/ReportItems!TotalByPerson.Value
  • 在总计列中:=ReportItems!TotalByFruitType.Value/ReportItems!GrandTotal.Value

使用 文本框属性 window 将两个值的格式设置为百分比。根据需要定义行的背景颜色后,您的设计 window 应如下所示:

运行报告,您将从上面的测试数据中得到以下结果: