2016-09-22 47 views
0

當前有一個查詢需要根據客戶代碼和狀態從表'作業'返回。基本我想在工作狀態不是'PICKEDUP'或者'PICKEDUP''uploadedshipping'(日期)在過去24小時內顯示客戶的所有工作。SQL Server帶有3個變量1的地方是必需的

這裏是我當前的查詢:

SELECT * FROM Jobs 
WHERE custcode='$custcode' AND (status!='PICKEDUP' OR uploadedshipping > DATEADD(DAY, -1, GETDATE())) 
ORDER BY datercvd DESC, job ASC 

然而這是返回與過去24小時uploadedshipping所有項目。我在哪裏做錯了什麼?

+0

你忘了在「uploadedshipping> ...」旁邊添加「AND status ='PICKEDUP'」條件 – Anton

+0

@Anton爲什麼會這樣?如果其中一個是真的,則該語句應該返回true ... – jppower175

+0

嗯...可能我沒有正確理解這些要求。所以邏輯應該是'過去24小時的所有項目'+所有'拾取'?狀態是否可以空? – Anton

回答

0

根據Anton的建議更新了我的答案。

試試這個:

SELECT * FROM Jobs 
WHERE custcode = '$custcode' AND (status != 'PICKEDUP' OR (uploadedshipping > DATEADD(DAY, -1, GETDATE()) AND status = 'PICKEDUP')) 
ORDER BY datercvd DESC, job ASC 

讓我知道它的工作。我的錯。這是錯誤的

+0

我正在使用odbc_connect並且驅動器在現在()引發錯誤。沒想到現在是SQL Server的正確語法 – jppower175

+0

我更新了我的答案。嘗試一下。 :) – androidism

+0

剛做過。現在我沒有返回結果... – jppower175

相關問題