【发布时间】:2016-04-04 13:59:37
【问题描述】:
我在 ssrs2008 中有一个矩阵,如下所示:
GroupName Zone CompletedVolume
Cancer 1 7
Tunnel 1 10
Surgery 1 64
ComplatedVolume 值来自特定表达式<<expr>>,等于:[Max(CVolume)]
这个矩阵由一个存储过程填充,如果可能,我不应该更改它。我需要做的是不显示 CompletedVolume [Max(Q9Volume)] >= 50 这样的过滤器,但是当我尝试运行报告时它说aggregate functions cannot be used in dataset filters or data region filters. How我可以尽可能简单地解决这个问题吗?
请注意,在 sql 查询中添加 where 子句不会解决此问题,因为有许多其他表使用相同的 SP,并且它们需要 CompletedVolume
编辑:我试图在 SP 上设置 max(Q9Volume) 值,但发生了一些我以前从未见过的事情。查询是这样的:
Select r.* from (select * from results1 union select * from results2) r
left outer join procedures p on r.pid = p.id
有趣的是,当我运行查询时,我看到的一些列既不包含在 results1/results2 也不包含在过程表中。例如,表(result1、result2 和过程)中没有像 Q9Volume 这样的列,但是当我运行查询时,我会看到输出中的列!这怎么可能?
【问题讨论】:
-
你试过了吗:
where CompletedValume >= 50?我不明白为什么需要聚合。 -
@GordonLinoff,OP 正在使用 SSRS 上的聚合表达式计算 CompletedVolume。您提出的建议可以在 SP 查询中使用
HAVING子句。 -
使用
Q9Volume >= 50
标签: sql sql-server reporting-services ssrs-2008 ssrs-2008-r2