这是从数据库返回的数据
一个季节的数据样本(报告返回两个值):
您可以看到的是分组,依次是:季节,剧院,演出编号,最后是收入和票务列。
SSRS报告具有三个级别的分组。 Pkg(将下面的另一个ID分组),场所-场所列和perf_desc-与perf_no链接的描述列。
看起来像这样
我需要做的是获取每个效果的收入列(唯一值),并将其返回到单独的列中-因此我使用此公式。
sum(Max(Fields!perf_tix.Value, "perf_desc"))
这很好用,可以为我提供每项演奏的总独特价值-并按pkg级别进行汇总。
问题在于我需要按季节提取数据。 我创建了一个单独的列,像这样
它是黄色的,因为它是不可见的,并在其他地方引用。但是表达式是,如果Season值=参数(通过的Season值)-那么基本上将每个tix值的总和求和。这在下一行(pkg所在的分组的行)上也很有效-在我的情况下为浅蓝色。
=iif(Fields!season.Value = Parameters!season.Value, Sum(Max(Fields!perf_tix.Value, "perf_desc")), 0)
但是,上面的行-父行/标题行给了我两个季节值的总和。基本上将所有内容加起来。这不是我想要的,也是为什么要这样做。季节值不等于第二个季节值的传递参数,因此为什么将其添加到分组值中。
我该如何解决?
答案 0 :(得分:0)
由于聚合函数位于IIF函数内部,因此仅评估数据集中的第一条记录。如果第一个与参数匹配,则将包括所有记录。
这可能有效:
=IIF(Fields!season.Value = Parameters!season.Value, Sum(Max(Fields!perf_tix.Value, "perf_desc")), 0)
如果您的报告也按地点分组,可能会更好,否则,您的计数可能包括所有值。