我是SSRS报告的新手,并根据TEXT查询创建了报告:
select * from customers
where residence_state = :state -- oracle, or @state for SQL Server
这生成了参数,我可以在“报告参数属性 - 可用值”窗口中给出一个值,例如“CA”。这很好,但是,假设我希望:state(或@state)参数包含'CA'+'AZ'+'WA'。最简单的方法是什么?
答案 0 :(得分:3)
对于MSSQL,将查询更改为
select * from customers
where residence_state in (@state)
这将使参数多值化。另外,请检查SSRS中的参数属性。确保
允许多个值
已经过检查。
答案 1 :(得分:1)
对于多选参数,SSRS传递逗号分隔的值列表。下面的代码来自一个报告,其中参数@program是逗号分隔的uniqueidentifiers集。
- 我创建了一个表变量
declare @programs table
(
program_id uniqueidentifier
)
declare @myid uniqueidentifier
- 然后我解析参数值(声明为@program varchar(max) - 如您所见,我知道每个参数的长度。 - 如果您确实使用charindex来查找下一个值的位置 而len(@program)> 0 开始
set @myid = convert(uniqueidentifier, left(@program, 36))
set @program = substring(@program, 38, len(@program))
--print @program
insert @programs values(@myid)
End
我希望这会有所帮助。