如何在SSRS参数的值字段中获取多个整数,以便在WHERE子句中使用IN语句?
忍受我。我认为这最终会成为一个简单的语法问题,但解释时间过长。
我有一份报告说我想在两类职员和专职局之间分配。确定哪个是激活发生的小时的唯一方法是,专职人员除了12和13(中午到下午2点)以外的所有时间工作。
我创建了一个名为@AgentType的参数,并在我的SQL查询中添加了一个where子句
Where
[Hour] in (@AgentType)
然后我将参数的数据类型设置为整数,并设置可用的值,如图所示。
如果我尝试准确地模拟工作时间
,这完全可以作为测试SSRS删除我的逗号并将整数转换为1234567 ...此外,我尝试使用expresion = 1,2,3 ......但这会在报告运行时导致错误。
所以我的问题基本上是如何在SSRS参数的值字段中获取多个整数,以便我可以在WHERE子句中使用IN语句?
答案 0 :(得分:2)
此解决方案可能适合您。您可以创建两个参数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",",")
)
还为Always Refresh
参数设置AgentTypeHidden
。
最后在您的查询中使用AgenTypeHidden
参数。
Where [Hour] in (@AgentTypeHidden)
如果有帮助,请告诉我。
答案 1 :(得分:0)
我使用了一个更简单的解决方案, 将参数保留为文本,将其传递给它,例如:1,2,3,4,5,6 然后在查询中执行以下操作:
PT-BR
usei umasoluçãomais简单, deixe oparâmetrocomo texto,passe para ele ex:1,2,3,4,5,6 查询查询结果:
Where [Hour] in (SELECT value FROM STRING_SPLIT(@AgentType, ','))