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

Getting multiple integer values in an SSRS parameter

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

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

我有一份报告,我想将其分为专职人员和局级人员两种类型。确定哪个时间是激活发生的唯一方法,除了 12 点和 13 点(中午到下午 2 点)外,专职工作人员全天工作。

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

Where

[Hour] in (@AgentType)

然后我将参数的数据类型设置为整数,并如图所示设置可用值。

这作为测试非常有效,但是如果我尝试准确地模拟工作时间

SSRS 删除了我的逗号并将整数转换为 1234567... 我也尝试使用表达式 =1,2,3... 但是在报告 运行 时导致错误。

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

此解决方案可能适合您。您可以创建两个参数,AgentTypeAgentTypeHidden.

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

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

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

=IIF(
   Parameters!AgentType.Value=1,
   SPLIT("1,2,3,4,5,6,7,8,9,10,11,14",","),
   SPLIT("12,13",",")
)

同时为 AgentTypeHidden 参数设置 Always Refresh

最后在您的查询中使用 AgenTypeHidden 参数。

Where [Hour] in (@AgentTypeHidden)

如果有帮助请告诉我。

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

PT-BR

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

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