在总计SSRS组中包含一次值

时间:2011-11-03 15:34:11

标签: reporting-services

我有一个数据源,它会提取事件出勤信息,如下表所示。

请注意,一个预订可能包含多个与会者,导致Amount列中出现重复。

+------------+-----------+---------------+----------+
| 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-art表技巧!)

我遇到的问题是,因为每个代表都显示amount,所以汇总函数会全部计算,因此01/01/2011的日期显示为1300英镑,而不是500英镑

我不需要与会者旁边的任何值,所以我可以将它放在一个单独的数据集中,但我似乎无法将表添加到Tablix单元格中,所以不知道它是如何工作的

1 个答案:

答案 0 :(得分:2)

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

所以现在这将是一个有效的表达式:

=SUM(FIRST(Fields!BookingPrice.Value , "BookingGroupName") , "DateGroupName")

如果您尚未使用2008R2,那么您可以使用嵌入式代码执行一些操作来保持总计:http://beyondrelational.com/blogs/jason/archive/2010/07/03/aggregate-of-an-aggregate-function-in-ssrs.aspx

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