2017-08-15 38 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

相關問題