【发布时间】:2021-12-01 08:16:25
【问题描述】:
我正在使用安装了 SSDT 的 Visual Studios 2015。我无法显示我的查询,因为其中包含机密列。假设我有两个临时表,它们收集在 select 语句中连接的一般数据,并使用 where 子句接受文本数据类型的多值参数(列是 char(8))来过滤报告中的信息。我已经检查了参数属性中允许多个值。没有可用的值,用户输入值。(我也尝试在下拉列表中提供相同结果的值)。
Where smpl_lvl_cd in (@SampleLevel)
我认为这很简单,当用户选择一个值时,一切正常。一旦您选择了多个值,您就会收到错误“在预期条件的上下文中指定的非布尔类型的表达式,靠近 ','。”
例如:选择样本级别“Q”和“V”。据我了解,SSRS 向查询发送“Q,V”。 (或者它发送“Q,V,'?)考虑到这一点,我尝试使用:
Where smpl_lvl_cd in (select value from string_split(@SampeLevel, ','))
类似的结果“过程或函数 string_split 指定了太多参数.....”后跟相同的布尔消息。
此参数未发送到存储过程,但我已尝试将参数上的 join 函数与查询中的 string_split 结合使用。我最终没有获得超过一个选择的数据。
请帮忙。
【问题讨论】:
-
用户如何手动输入参数值?如果他们要添加逗号,那就是问题所在,您只需要输入值并在值之间按回车键,它们就会出现在不同的行中
标签: reporting-services multi-select