我可以将报告参数用作 WHERE 子句的一部分吗

Posted

技术标签:

【中文标题】我可以将报告参数用作 WHERE 子句的一部分吗【英文标题】:Can I use a report paramater as a section of the WHERE clause 【发布时间】:2017-08-15 16:27:33 【问题描述】:

我有一个运行良好的查询,就像这样

WHERE (customer IN (@cust))

而@cust 是一个客户或多个客户列表

我要添加的是AND,在另一个可选参数中包含更多信息,例如

No: @expiring = " "

Yes: @expiring = " AND getDate() >= dateAdd(d,[expiryWarning],[expiryDate]) "

然后我想将其添加到 WHERE 的末尾,如果它从下拉列表中选择为是或否,则让它执行第二部分,这样我就可以显示整个客户列表或仅显示在报告。

WHERE (customer IN (@cust)) @expiring

但我在尝试运行此报告时看到错误

那个there's an error near @expiring

有什么见解吗?找了一天,这可能吗?

【问题讨论】:

【参考方案1】:

您需要更改 where 子句以将 @expiring 考虑在内。

WHERE customer in (@cust)
    AND (@expiring='No' OR getDate() >= dateAdd(d,[expiryWarning],[expiryDate]))

所以如果@expring 为“否”,那么WHERE 子句的那部分总是返回true。如果过期 = 'Yes' 则日期条件必须为真,否则该部分将返回假。

【讨论】:

啊,好的,我知道发生了什么,在这里,非常感谢!我会试一试,并将你的标记为答案——如果——当它有效时。

以上是关于我可以将报告参数用作 WHERE 子句的一部分吗的主要内容,如果未能解决你的问题,请参考以下文章

where子句中的SSRS参数用法

如何将 WHERE 子句添加到 Power BI 中的 SQL 或 Access 数据源?

用于返回结果集的 where 子句中的 case 语句包含空值

具有另一个 sql 语句的 where 子句中的 case 条件

Jooq ARRAY_AGG where 子句

始终选择表中所有记录的 WHERE 子句