Reporting services 在SSRS参数中获取多个整数值

Reporting services 在SSRS参数中获取多个整数值,reporting-services,ssrs-2008,Reporting Services,Ssrs 2008,如何将多个整数放入SSRS参数的值字段中,以便在WHERE子句中使用IN语句 请容忍我。我认为这最终会成为一个简单的语法问题,但解释太长了 我有一份报告,我想分为两类,一类是专职人员,另一类是局里人员。确定激活发生的时间的唯一方法是,除12点和13点(中午到下午2点)外,所有时间都由专职人员工作 我已经创建了一个名为@AgentType的参数,并在SQL查询中添加了一个where子句 Where [Hour] in (@AgentType) 然后,我将参数的数据类型设置为整数,并将可用值设置

如何将多个整数放入SSRS参数的值字段中,以便在WHERE子句中使用IN语句

请容忍我。我认为这最终会成为一个简单的语法问题,但解释太长了

我有一份报告,我想分为两类,一类是专职人员,另一类是局里人员。确定激活发生的时间的唯一方法是,除12点和13点(中午到下午2点)外,所有时间都由专职人员工作

我已经创建了一个名为@AgentType的参数,并在SQL查询中添加了一个where子句

Where

[Hour] in (@AgentType)
然后,我将参数的数据类型设置为整数,并将可用值设置为如图所示。

这是一个完美的测试,但是如果我尝试准确地模拟工作时间的话

SSRS删除我的逗号并将整数转换为1234567。。。我还尝试使用expresion=1,2,3。。。但这会在报告运行时导致错误


因此,我的问题基本上是如何将多个整数放入SSRS参数的值字段,以便在WHERE子句中使用IN语句?

此解决方案适用于您。您可以创建两个参数,
AgentType
AgentTypeHidden

对于
AgentType
设置两个可用值,如下所示:

AgentTypeHidden
必须隐藏并设置为允许多个值:

不设置任何可用值,但使用以下表达式设置默认值:

=IIF(
   Parameters!AgentType.Value=1,
   SPLIT("1,2,3,4,5,6,7,8,9,10,11,14",","),
   SPLIT("12,13",",")
)
还为
AgentTypeHidden
参数设置
始终刷新

Where [Hour] in (@AgentTypeHidden)

最后,在查询中使用
agentypehinded
参数

Where [Hour] in (@AgentTypeHidden)
如果有帮助,请告诉我。

我使用了更简单的解决方案, 将参数保留为文本,将其传递给它,例如:1,2,3,4,5,6 然后在查询中执行以下操作:

铂溴

使用uma soluço mais simples, 第二、第二、第三、第四、第五、第六章 depois na query faça o seguinte:

Where [Hour] in (SELECT value FROM STRING_SPLIT(@AgentType, ','))

如果要使用此方法,参数应为字符串,您还需要将[HOUR]字段更改为字符串,以使其具有可比性。我确信需要对参数字段执行某些操作才能使其识别出它也是一个数组的事实……它必须是一个字符串。@Gallus如果使用“text”选项,则在运行报告时会出现此错误,无法读取数据集DataSet1的下一个数据行。(RSERRORREADINGENXTDATAROW)-----报表处理过程中发生错误。这看起来真的很好。它会对报表的运行时间产生很大影响吗?@tomdemaine,我不这么认为,因为填充隐藏参数的表达式是基本的。您应该注意数据检索,可能专用选项会返回大量行,这可能会影响性能。奇怪的是,专用选项运行速度非常快,但在超时之前局只显示加载微调器。编辑:它刚刚完成运行,但bureau比专用的慢1-2分钟。@tomdemaine,请尝试在SSMS中使用WHERE子句中的专用和bureau值运行查询,以查看执行时间。此外,如果同时查询具有多个连接的事务性数据库,则可能会因硬件、服务器设置、网络、甚至查询等因素而导致性能不佳。