2017-08-15 14 views
1

我有一个运行大的查询作为是这样我可以使用报告paramater作为WHERE子句的一部分

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

任何见解?我一直在寻找,这甚至有可能吗?

回答

2

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

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

因此,如果@expring是'否',那么WHERE子句的那部分总是返回true。如果expiring ='Yes',那么日期标准必须是true,否则该部分将返回false。

+0

啊好吧我明白发生了什么,在这里,优秀的谢谢你!我会试一试,并将其标记为答案 - 如果它工作正常。 – ScottC

+0

更新:它工作得很好!再次感谢! – ScottC

相关问题