【问题标题】:How to add multiple parameters in where clause not dependent on each other如何在不相互依赖的where子句中添加多个参数
【发布时间】:2020-01-04 23:37:35
【问题描述】:

我需要一个带有 5 个参数的查询,例如...

姓名、姓氏、出生地、出生日期、身份证。

参数应该默认为null,并且不相互依赖。运行报告时,我应该仅使用 ID 等进行过滤。有时我可以使用 2 个或更多参数进行过滤

【问题讨论】:

    标签: sql sql-server reporting-services


    【解决方案1】:

    SQL 会沿着这条线

    Select
    your columns
    
    from some_table
    
    where 
    
    (@name = some_table.name_column or @name is null)
    and
    (@surname = some_table.surname_column or @surname is null)
    and
    (@birth_place = some_table.birth_place_column or @birth_place is null)
    and
    (@dateofbirth= some_table.dateofbirth_column or @dateofbirth is null)
    and
    (@ID= some_table.ID_column or @ID is null)
    

    现在在 SSRS 中,允许您的所有参数为空值。当然.. 您需要选择至少一个参数值,否则您实际上是从表中返回所有内容.. 我敢肯定这是您不这样做的不想。

    【讨论】:

    • 我试过了,但是当我运行报告时,参数@ID 没有被检查。我在参数属性中添加了 NULL 作为默认值。
    • 在 SQL 中使用上面的代码,看看它是否有效。声明除 ID 之外的所有参数都将默认值设置为 null 并查看查询是否返回任何内容
    • 嘿,我再次从头开始构建报告,并且使用了您的查询,并且在运行报告时,如果我填写 1 个参数并查看报告,我会收到错误,无法输入其他参数。
    • 您是否在新报告中为您的参数设置了允许空值?
    【解决方案2】:

    ID and Firstname

    请查看 ID,voornaam 表示未检查名字

    Null selected in paramter properties

    default null

    【讨论】:

    • 请通过编辑您的问题来添加任何 cmets.. 而不是通过提供更多信息来回答您自己的问题
    • 嗨,Harry,我已经尝试过您的查询,但是例如,如果我在查看报告时在参数名称中输入了一个值,那么报告中没有任何数据。可能是什么问题?
    • 您能展示一些示例数据和您的实际查询吗?
    猜你喜欢
    • 1970-01-01
    • 2020-10-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多