gpt4 book ai didi

sql-server - 多值参数在 SSRS 报告中不起作用

转载 作者:行者123 更新时间:2023-12-04 15:55:22 25 4
gpt4 key购买 nike

我有一份 SSRS 报告。在主查询上有一个很长的 SQL 查询,在最后 SELECT我想用 WHERE 过滤结果表达式,过滤器应具有多值参数。

我是这样设置参数的:

  • 使用查询创建一个新的数据集。

  • enter image description here
    enter image description here
  • 将新参数添加到“参数”文件夹(名称为 NewParam)。

  • enter image description here
    enter image description here
  • 选中“允许多个值”复选框。
  • 将参数添加到“主查询”并使用以下表达式设置值:
  • =Join(Parameters!NewParam.Value,",") 
  • 在主查询的末尾,我过滤了结果:
  • select * 
    from @FinalStatusTbl
    where Test_Number in (@NewParam)
    order by Priority

    enter image description here
    enter image description here

    问题是:

    在报告中,当我从列表中选择一个值时,我得到了预期的结果,但是如果我选择多个值,则结果为空(没有出现错误。)

    你知道为什么吗?

    (当我尝试这个时: where Test_Number in ('Test 1', 'Test 2') 效果很好)。

    最佳答案

    当您使用 sql 查询创建数据集时,多值参数适用于 in(@ParamName)没有任何变化。

    更换您的 =Join(Parameters!NewParam.Value,",")只需 =Parameters!NewParam.Value你应该没事的。

    也就是说,你看到人们使用它的原因 join表达式是因为如果您的参数有很多潜在的选择并且您的数据相当大,有时您的查询会显着减慢。这里做的就是结合join数据集中带有字符串拆分函数的表达式,用于转换结果 Value1,Value2,Value3可以通过 inner join 在查询中使用的表中的字符串值.

    如果将多个值作为参数传递给存储过程,这也是一个要求,因为您不能使用 in(@ParamName)句法。

    关于sql-server - 多值参数在 SSRS 报告中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51931993/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com