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

时间:2017-08-15 16:27:33

标签: sql tsql report ssrs-2008

我的查询运行得很好,就像这样

WHERE (customer IN (@cust))

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

我要添加的内容是AND,其他可选参数中包含更多内容,例如

No: @expiring = " "

OR

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

然后我想将其添加到WHERE的末尾,并且如果从下拉列表中选择“是”或“否”,则将其添加到第二部分,以便我可以显示整个客户列表或只是在报告中到期的那些。

WHERE (customer IN (@cust)) @expiring

但是当我尝试运行此报告时发现错误

there's an error near @expiring

任何见解?我整天都在搜索,这有可能吗?

1 个答案:

答案 0 :(得分:2)

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

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

因此,如果@expring为'No',则WHERE子句的该部分始终返回true。如果expiring ='Yes',则日期条件必须为true,否则该部分将返回false。