Reporting services 为什么列值总是第一行中该列的值?

Reporting services 为什么列值总是第一行中该列的值?,reporting-services,group-by,Reporting Services,Group By,在我的一份报告中,我有一个包含以下字段的数据集: CategoryID ProductID PackType NumberOfItems 1 1 1 2 1 1 2 4 1 1 3 12 1 2 1 4 1 2

在我的一份报告中,我有一个包含以下字段的数据集:

CategoryID  ProductID  PackType  NumberOfItems
1              1          1          2
1              1          2          4
1              1          3          12
1              2          1          4
1              2          2          8
1              2          3          12
2              1          1          3
2              1          2          6
...
我需要的输出是:

GroupHeaderA:

类别 PackType=1的SUMNumberOfItems PackType=3的SUMNumberOfItems 包装类型为2的SUMNumberOfItems-包装类型为1的NumberOfItems 包装类型为3的SUMNumberOfItems-包装类型为2的NumberOfItems 分组详情a:

产品ID PackType=1的NumberOfItems PackType=3的NumberOfItems PackType=2的NumberOfItems-PackType=1的NumberOfItems PackType=3的NumberOfItems-PackType=2的NumberOfItems 为了实现这一点,我在CategoryId上创建了一个ParentGroup,在ProductId上创建了一个子组。在ProductID的details部分,我放置了NumberOfItems和PackType。在子组标题I上放置:

表达式_1以获取packtype为1的NumberOfItems的值

=IIF(Fields!PackType.Value =  1, NumberOfItems, 0)
表达式_2,用于获取packtype为max的NumberOfItems的值

=IIF(Fields!PackType.Value =  Max(Fields!PackType.Value),NumberOfItems ,0)
但表达式返回的结果不正确。我发现了田野!PackType.Value始终为1。为什么详图组页脚中的列始终显示其第一行的值


请告诉我是否有其他方法可以实现这一点。

除非您要访问“详细信息”组中的字段,否则对任何不属于分组标准的字段的引用都需要在聚合中

而不是=Iffields!PackType.Value=1,NumberOfItems,0尝试:

而不是=Iffields!PackType.Value=MaxFields!PackType.Value,NumberOfItems,0

第二种情况是,包含聚合的聚合在2008R2之前的SSR中不起作用。我很少使用这种表达式,所以我甚至不确定它在R2中是否有效。如果这不起作用,那么我将编写一些嵌入式代码来实现这一点

=SUM(IIF(Fields!PackType.Value =  1, NumberOfItems, 0))
=SUM(IIF(Fields!PackType.Value =  Max(Fields!PackType.Value , "YourGroupNameHere"),NumberOfItems ,0))