如何在 SSRS 中添加拆分聚合行组

How to add a break-out aggregate row group in SSRS

我对 SSRS 几乎一无所知,所以如果我使用了错误的词汇,请原谅我。

我工作的小组有一份志愿者机会清单。每个机会都需要指定数量的志愿者。该数据库会跟踪志愿服务人员、他们志愿服务的机会以及他们志愿服务的状态:他们是否刚刚注册并需要联系他们,他们是否正在成为一名志愿者的过程中,是否他们正在志愿服务,或者他们是否已经退出志愿服务。

某些志愿者机会(即那些需要与儿童接触并因此需要进行背景调查的机会)比其他机会有更多的志愿者状态。对于这些机会,总共有 14 个州,而其余的州只有 3 或 4 个。

我需要创建一个报告来显示每个州每个机会的人数。对于大多数只有三列的州来说,有 15 列(14 + 需要的志愿者)是不合理的。对于与儿童相关的机会,我想指定一个 'other' 列,并在志愿者机会名称左侧扩展 [+],这将扩展所有特定于儿童的州及其相关计数。

现在的报告如下所示:

我的背景是 database/query 设计,所以我很自然地为每一列编写了一个带有连接子查询的查询。与其为每个 'Other' 状态创建一个额外的新子查询,我假设有一种方法可以让我对志愿者状态进行单个子查询连接分组,然后让 SSRS 完成其余的工作。 (我在这里可能对 SSRS 的功能有误。)

我建议的查询如下所示:

SELECT vo.name, vo.volunteers_needed, vm.status, vm.status_count
FROM tbl_volunteer_opportunity vo
JOIN (SELECT volunteer_opp_id, status, COUNT(*) "status_count"
      FROM tbl_volunteer_opportunity_member
      GROUP BY volunteer_opp_id, status) vm ON vo.volunteer_opp_id = vm.volunteer_op_id

我现在需要制作一个 tablix and/or 数据源来为 ConnectedIn ProcessNo Contact 制作列,并为 Other 制作一个聚合值,然后为每个 Other 状态做 其他事情 扩展。

我不确定如何做这两件事。

假设您查询 returns 数据,格式如下:

+-------------+--------------------+-------------+-------+
| ProfileName |       Status       | StatusGroup | Count |
+-------------+--------------------+-------------+-------+
| A           | Needed             | Needed      |     5 |
| A           | Connected          | Connected   |     3 |
| A           | In Process         | In Process  |     5 |
| A           | No Contact         | No Contact  |     2 |
| A           | Other status       | Other       |     3 |
| A           | Another status     | Other       |     6 |
| A           | Yet another status | Other       |     2 |
+-------------+--------------------+-------------+-------+

然后创建一个 tablix,使用 ProfileName 作为行分组,使用 StatusGroup 作为列组。 Tablix 在设计器中将如下所示:

                  +-----------------+
                  | [StatusGroup]   |
+-----------------+-----------------+
| [ProfileName]   | [Sum(Count)]    |
+-----------------+-----------------+

然后您可以在右侧添加一个 totel 列,并向具有交互式 expand/collapse 功能的列组添加一个额外的级别(将 "Other" StatusGroup 扩展到各个状态)。使用 SSRS 表达式,您应该能够隐藏非 "Other".

的状态组的 headers 列上的 expand/collapse 按钮

希望这足以让您入门。