虽然已经提出了这个问题,但所有这些问题的情景完全不同,并没有回答我的问题,因此提出了一个新问题。
我在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
中
答案 0 :(得分:1)
在Tablix Filters定义中,我将数据类型更改为Boolean,将Operator保留为=,并将Value设置为True。
然后我会将Expression设置为返回正确描述的True / False结果。
这种设计更加灵活,因为您可以轻松地在一个Expression中组合多个字段,参数等。它还避免了SSRS中数据类型转换的脆弱性和隐蔽性。