如何根据SSRS中的范围过滤记录?

时间:2014-06-17 14:21:32

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

虽然已经提出了这个问题,但所有这些问题的情景完全不同,并没有回答我的问题,因此提出了一个新问题。

我在SSRS query field中对SQL代码进行了硬编码。其中一列来自

 CASE STATEMENT

CASE WHEN (Amt_Requested > 0) 
THEN Amt_Requested ELSE Amt_Committed END AS Final_Amount

我想为此列添加一个过滤器,我想要记录BETWEEN 25000到50000

我尝试在SSRS的“设计”页面上创建表达式

=iif(Fields!Final_Amount.Value >=25000 AND Fields!Final_Amount.Value <= 50000,Fields!Final_Amount.Value,0)

这满足条件但不过滤数据。

我还尝试从tablix属性中添加FilterExpression,但它给出了一个错误说明

'Please check the data type returned by the FilterExpression
  

PL note:CASE STATEMENT在SELECT STATEMENT

1 个答案:

答案 0 :(得分:1)

在Tablix Filters定义中,我将数据类型更改为Boolean,将Operator保留为=,并将Value设置为True。

然后我会将Expression设置为返回正确描述的True / False结果。

这种设计更加灵活,因为您可以轻松地在一个Expression中组合多个字段,参数等。它还避免了SSRS中数据类型转换的脆弱性和隐蔽性。