Reporting services 在汇总的SSRS组中包含一次值

Reporting services 在汇总的SSRS组中包含一次值,reporting-services,Reporting Services,我有一个数据源,它正在提取事件出席信息,如下表所示 请注意,一次预订可能包含多个与会者,从而导致金额列重复 +------------+-----------+---------------+----------+ | Date | Booking | Booking Price | Attendee | +------------+-----------+---------------+----------+ | 01/01/2011 | Booking 1 | £

我有一个数据源,它正在提取事件出席信息,如下表所示

请注意,一次预订可能包含多个与会者,从而导致
金额
列重复

+------------+-----------+---------------+----------+
| Date       | Booking   | Booking Price | Attendee |
+------------+-----------+---------------+----------+
| 01/01/2011 | Booking 1 |       £300.00 | Alice    |
| 01/01/2011 | Booking 1 |       £300.00 | Bob      |
| 01/01/2011 | Booking 1 |       £300.00 | Dave     |
| 01/01/2011 | Booking 2 |       £200.00 | Frank    |
| 01/01/2011 | Booking 2 |       £200.00 | Julie    |
| 02/01/2011 | Booking 3 |       £100.00 | Anne     |
+------------+-----------+---------------+----------+
报告的结尾应该是这样的:

+------------+-----------+---------+
| Date       | Booking   | Amount  |
+------------+-----------+---------+
| 01/01/2011 | Booking 1 |    £300 |
|            |    Alice  |         |
|            |    Bob    |         |
|            |    Dave   |         |
+------------+-----------+---------+
|            | Booking 2 |    £200 |
|            |    Frank  |         |
|            |    Julie  |         |
+============+===========+=========+
|   TOTAL FOR 01/01/2011 |    £500 |
|                                  |
|                                  |
+============+===========+=========+
| 02/01/2011 | Booking 3 |    £100 |
|            |     Anne  |         |
+============+===========+=========+
|   TOTAL FOR 02/01/2011 |    £100 |
|                                  |
|                                  |
+============+===========+=========+
(这几乎耗尽了我的ascii艺术桌技能!)

我遇到的问题是,由于为每个委托显示的是
金额,聚合函数会将其全部计算在内,因此2011年1月1日的日期显示为1300英镑,而不是500英镑


我不需要与会者旁边的任何值,因此我可以将其拉入单独的数据集中,但我似乎无法将表格添加到tablix单元格中,因此不知道该如何工作。

SSRS的版本在这里是关键。在SSRS 2008R2中,您现在可以嵌套聚合函数:

因此,这将是一个有效的表达式:

=SUM(FIRST(Fields!BookingPrice.Value , "BookingGroupName") , "DateGroupName")
如果您还没有使用2008R2,那么您可以使用嵌入式代码执行一些技巧,以保持运行总数:


这里的关键是,每个组向嵌入代码中的总数添加一次。然后检索总数,并在组末尾将其清除

我想我们不是R2,我得检查一下。我记得之前做过类似于Crystal Reports中的其他建议——基本上是一种“if row=1,然后添加否则跳过”R2为Reporting Services添加了许多功能,如果您计划进行大量SSRS开发,升级可能是值得的。从2008年到2008年R2的功能添加/更改比从2008年R2到SQL Server 2012的功能添加/更改更多。太棒了!虽然我不得不使用“Max”函数而不是第一个。不幸的是,这似乎与总计不起作用。思想?