如何使用聚合函数来过滤ssrs 2008中的数据集

时间:2016-04-04 13:59:37

标签: sql sql-server reporting-services ssrs-2008 ssrs-2008-r2

我在ssrs2008中有一个矩阵,如下所示:

GroupName   Zone    CompletedVolume 
Cancer      1       7
Tunnel      1       10
Surgery     1       64

ComplatedVolume值来自特定表达式<<expr>>,它等于:[Max(CVolume)]

此矩阵由存储过程填充,如果可能,我不应该更改。我需要做的是不要显示CompletedVolume是&lt; = 50的数据。我试图转到tablix属性并添加像[Max(Q9Volume)] >= 50这样的过滤器,但是当我尝试运行报告时它会说{ {1}}我怎样才能尽可能简单地解决这个问题?

请注意,在sql查询中添加where子句无法解决此问题,因为有许多其他表使用相同的SP,并且他们需要数据,其中CompletedVolume&lt; = 50.任何帮助都将不胜感激。

编辑:我正在尝试在SP上获得最大值(Q9Volume)值,但是我以前从未见过的事情发生了。查询如下:

aggregate functions cannot be used in dataset filters or data region filters.

有趣的是,我看到的一些列在运行查询时不包含results1 / results2和过程表。例如,表中没有像Q9Volume这样的列(result1,result2和procedures),但是当我运行查询时,我看到输出上的列!怎么可能?

1 个答案:

答案 0 :(得分:2)

[Max(CVolume)]小于或等于50时,您可以将行隐藏属性设置为True。

选择行并转到行可见性

enter image description here

选择基于表达式显示或隐藏选项并使用以下表达式:

=IIF(
Max(Fields!Q9Volume.Value)<=50,
True,False
)

它将显示如下内容:

enter image description here

  

注意癌症和隧道的最大值分别为7和10,所以   如果您应用上述表达式,它们将被隐藏。

如果有帮助,请告诉我。