我有一个数据源,它会提取事件出勤信息,如下表所示。
请注意,一个预订可能包含多个与会者,导致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单元格中,所以不知道它是如何工作的
答案 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
这里的关键是每组添加一次嵌入代码中的总数。然后检索总数并在组末尾清除它。