为什么列值始终是第一行中该列的值?
问题描述:
在我的报告之一,我有以下字段的数据集:为什么列值始终是第一行中该列的值?
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:
CategoryID
SUM(NumberOfItems where PackType = 1)
SUM(NumberOfItems where PackType = 3)
SUM((NumberOfItems where PackType = 2) - (NumberOfItems where PackType = 1))
SUM((NumberOfItems where PackType = 3) - (NumberOfItems where PackType = 2))
GroupDetailA:
ProductID
NumberOfItems where PackType = 1
NumberOfItems where PackType = 3
(NumberOfItems where PackType = 2) -(NumberOfItems where PackType = 1)
(NumberOfItems where PackType = 3) -(NumberOfItems where PackType = 2)
为了实现此目的,我在ProductId的CategoryId和子组上创建了一个ParentGroup。在ProductID的细节部分,我已经放置了NumberOfItems和PackType。儿童组头我把:
expression_1得到NumberOfItems的值,其中packtype为1个
=IIF(Fields!PackType.Value = 1, NumberOfItems, 0)
expression_2得到NumberOfItems的值,其中packtype是最大
=IIF(Fields!PackType.Value = Max(Fields!PackType.Value),NumberOfItems ,0)
但表达没有回复正确。我发现Fields!PackType.Value
总是为1.为什么细节组的页脚列总是显示其第一行的值?
请告诉我,如果还有另一种方法可以实现这一点。
答
除非您正在访问详细信息组中的字段,否则对不属于分组标准的任何字段的引用都需要处于聚合中。
而不是=IIF(Fields!PackType.Value = 1, NumberOfItems, 0)
尝试:
=SUM(IIF(Fields!PackType.Value = 1, NumberOfItems, 0))
而不是=IIF(Fields!PackType.Value = Max(Fields!PackType.Value),NumberOfItems ,0)
=SUM(IIF(Fields!PackType.Value = Max(Fields!PackType.Value , "YourGroupNameHere"),NumberOfItems ,0))
这第二个,包含聚合将在SSRS之前2008R2不行的总和。我还没有使用过这种表达方式,所以我甚至不确定它是否可以在R2中使用。如果这不起作用,那么我会写一些嵌入式代码来获得它。