我有一个tablix,想要使用IN条件进行筛选。问题是SSRS给出了一个字节到字符串的比较错误。我知道我可以修改参数和SQL来实现这一点,但我在多个地方使用SQL语句。我真的只想在一个地方过滤,而不是在另一个地方。
我想说,
MyField
IN
If Parameter!xyz.Value = True Then "0,1"
Else "0,1,2"
这将把一个动态值传递到IN子句中。
如果我把0,1直接插入到滤波器值中,它就起作用了。
我试过了,
Split("0,1", ",") <- Byte error
"0,1" OR "0" <- Byte error
我想这里的第二个问题是,当我将0,1直接插入滤波器值时,SSRS将其转换为什么?
有些人声称多值整数可以正常工作,但我从来没有这样做过。你把Filter类型设置为Text吗?
对于你想要的,我只使用INSTR:
表达式:
=IIF(INSTR(IIF(Parameter!xyz.Value, "0,1", "0,1,2"), CSTR(MyField)) > 0 , 1, 0)
类型:整数
操作员:=
值:1