8

我有一个我认为是一个相当简单的问题,但我一生都无法弄清楚如何去做(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 组(子组)是工作编号。

曲目编号
    工作编号

报告中的船舶总数为First(Fields!ShipTotal.Value)

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

如何将显示的值与第 1 组 ( First(Fields!ShipTotal.Value)) 相加?我认为范围是方式,但我迷路了。

4

1 回答 1

17

通常会针对旧版本的 SSRS 询问此问题,因此最好回答支持您所需功能的最新版本。SSRS 2008R2 引入了对聚合聚合的支持。

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

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

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

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

  • 使用嵌入式代码来跟踪聚合
  • 在查询中执行数学运算,使用不同的数据集返回结果,或者作为每行的新字段。
于 2012-11-09T19:11:29.290 回答