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))