2017-04-05 28 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 ...我新的这应该工作,只是当你有正确的数据@更好! –