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

Can I use a report paramater as a section of the WHERE clause

我有一个查询运行像这样很好

WHERE (customer IN (@cust))

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

我想添加的是一个 AND,在另一个可选参数中有 more,例如

No: @expiring = " "

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

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

WHERE (customer IN (@cust)) @expiring

但是当我尝试 运行 这份报告

时我看到了一个错误

那个there's an error near @expiring

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

您需要更改 where 子句以像这样考虑 @expiring

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

所以如果@expring 是 'No' 那么 WHERE 子句的那部分总是 return 为真。如果过期 = 'Yes' 那么日期标准必须为真,否则该部分将 return 为假。