在SSRS 2008 R2中汇总组项目

时间:2012-11-09 13:41:34

标签: reporting-services scope

我认为这是一个相当简单的问题,但不能为我的生活找出如何做到这一点(SSRS 2008 R2)。我正在使用Tablix,因为我需要显示详细数据(而不仅仅是聚合)

我有大量数据(运费)和工作成本分配

报告中的(删节)数据是

TrackNo      ShipCost   NoJobs          JobNo        Job Cost
T1             10.00        1             J1           10.00
T2             10.00        3             J2            3.33
T2             10.00        3             J3            3.33
T2             10.00        3             J4            3.33

因此,TrackNo T1可能有1个与之关联的作业,而TrackNo T2可能有3个作业相关联。然后,我支付了各种工作的成本。如果每件货物的价格为10美元:

  • 用于跟踪没有T1,工作号J1将获得$ 10.00
  • 用于跟踪无T2,作业J2,J3& J4每人将获得$ 3.33

我想要一个这样的下钻报告:

TrackNo     Ship Total         No. Jobs         Job No             Job Total
+  T1           10.00              1
                                                  J1                   10.00
+  T2           10.00              2                                                          
                                                  J2                    3.33
                                                  J3                    3.33
                                                  J4                    3.33

在我的报告中,第1组正在追踪否;第2组(儿童组)是工作号码。

TrackNo
    JobNo

报告中的发货总计为First(Fields!ShipTotal.Value)

我想总结整个报告的ShipTotal(不是总计工作总数,因为它们有舍入误差:例如3.33 * 3 = 9.99)

如何对第1组(First(Fields!ShipTotal.Value))显示的值进行求和?我正在考虑范围,但我迷路了。

1 个答案:

答案 0 :(得分:17)

这个问题经常被问到旧版本的SSRS,所以很高兴回答一个支持你需要的功能的最新版本。 SSRS 2008R2引入了对聚合聚合的支持。

在报告的总框中,将表达式设置为:

=SUM( MAX(Fields!ShipTotal.Value, "TrackNo"), "DataSetName")

正如您所提到的,范围是其中的关键部分。上面的表达式表明SSRS应该为每个“TrackNo”组取第一个ShipTotal,并为数据集中的每个TrackNo组添加它们。 (当然,在那里替换你的数据集名称。)

获得此结果的另外两种方法也适用于早期版本的SSRS:

  • 使用嵌入式代码keep track of the aggregate
  • 在查询中执行数学运算,使用其他数据集返回结果,或将每行返回为新字段。
相关问题