我可以将报告参数用作 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 子句添加到 Power BI 中的 SQL 或 Access 数据源?
用于返回结果集的 where 子句中的 case 语句包含空值