SSRS分组摘要-Max不起作用

时间:2019-01-22 15:50:32

标签: tsql reporting-services group-by aggregate ssrs-2008-r2

这是从数据库返回的数据

一个季节的数据样本(报告返回两个值):

enter image description here

您可以看到的是分组,依次是:季节,剧院,演出编号,最后是收入和票务列。

SSRS报告具有三个级别的分组。 Pkg(将下面的另一个ID分组),场所-场所列和perf_desc-与perf_no链接的描述列。

看起来像这样

enter image description here

我需要做的是获取每个效果的收入列(唯一值),并将其返回到单独的列中-因此我使用此公式。

 sum(Max(Fields!perf_tix.Value, "perf_desc"))

这很好用,可以为我提供每项演奏的总独特价值-并按pkg级别进行汇总。

问题在于我需要按季节提取数据。 我创建了一个单独的列,像这样

enter image description here

它是黄色的,因为它是不可见的,并在其他地方引用。但是表达式是,如果Season值=参数(通过的Season值)-那么基本上将每个tix值的总和求和。这在下一行(pkg所在的分组的行)上也很有效-在我的情况下为浅蓝色。

=iif(Fields!season.Value = Parameters!season.Value, Sum(Max(Fields!perf_tix.Value, "perf_desc")), 0)

但是,上面的行-父行/标题行给了我两个季节值的总和。基本上将所有内容加起来。这不是我想要的,也是为什么要这样做。季节值不等于第二个季节值的传递参数,因此为什么将其添加到分组值中。

我该如何解决?

1 个答案:

答案 0 :(得分:0)

由于聚合函数位于IIF函数内部,因此仅评估数据集中的第一条记录。如果第一个与参数匹配,则将包括所有记录。

这可能有效:

=IIF(Fields!season.Value = Parameters!season.Value, Sum(Max(Fields!perf_tix.Value, "perf_desc")), 0)

如果您的报告也按地点分组,可能会更好,否则,您的计数可能包括所有值。