2017-04-05 83 views
0

我想查詢數據,其中phone1和phone2的代碼都不包含'mobile'字樣。嘗試使用AND和OR語句,但當其中一個字段中存在「MOBILE」時,它不起作用。查詢哪裏有兩個字段不包含任何

select ORDCON.* from PL00.dbo.ordhdr inner join PL00.dbo.ordhdrx on ordhdrx.ORDER_NO = ordhdr.ORDER_NO 
           INNER JOIN PL00.dbo.schedule on schedule.ID_VAL = ordhdr.ORDER_NO 
           left outer join PL00.dbo.ordcon on ordcon.ORDER_NO = ordhdr.ORDER_NO 
where ordhdr.RSPNS_CODE = 'TXTB4' 
and (schedule.[DATE] >= CONVERT(varchar(10), getdate(), 101)) 
AND (NOT ORDCON.PHONE1CODE = 'MOBILE' 
OR NOT ORDCON.PHONE2 = 'MOBILE') 
+0

那不是 「AND和AND」:AND(NOT ORDCON.PHONE1CODE = '移動' AND NOT ORDCON.PHONE2 = '移動') – MPavlak

回答

0

你想要的邏輯是:

AND (ORDCON.PHONE1CODE <> 'MOBILE' AND ORDCON.PHONE2 <> 'MOBILE') 

,或者假設也不是NULL

AND 'MOBILE' NOT IN (ORDCON.PHONE1CODE, ORDCON.PHONE2) 

確定的第二個變量是不ORDCON.PHONE2CODE而非ORDCON.PHONE2?我懷疑正確的邏輯:

AND (ORDCON.PHONE1CODE <> 'MOBILE' AND ORDCON.PHONE2CODE <> 'MOBILE') 
+0

哇,是其應該成爲phone2code ...我新的這應該工作,只是當你有正確的數據@更好! –