2012-05-21 6 views
0
select * from table_name 
where BaseDocEntry=15 and BaseDocType='PRRH' and ItemCode='TestStudy2' 
    and WhseCode='01' and (currentdoctype<>'PUSH' and CurrentDocEntry<>15) 

По запросу я написал выше, данные из INS2 будут извлекаться за исключением currentdoctype [PUSH] и все данные, где CurrentDocEntry это не 15. Что я ожидаю мой запрос, чтобы быть в , он должен исключать данные только в том случае, если эта комбинация, т.е. currentdoctype = PUSH и CurrentDocEntry = 15, происходит в одной и той же строке, а затем исключает эту строку.Исключить записи проверки двух условий

Вы можете исправить этот вопрос?

+3

Пожалуйста, не назовите ваши вопросы тем, что * не * ваше требование. –

+0

Я попытался сделать более четкое название, но я не уверен на 100%, что я действительно понял вопрос. Пожалуйста подтвердите. –

ответ

8

Используйте это:

and not (currentdoctype='PUSH' and CurrentDocEntry=15) 
+0

Спасибо. Это сработало – Shruti

1

Поскольку вы используете AND и не OR запроса за исключением, когда currentdoctype отличается от 'PUSH' и CurrentDocEntry отличного от 15.

Если вы хотите currentdoctype = PUSH и CurrentDocEntry = 15 просто поставили эти условия:

select * from ins2 
where BaseDocEntry=15 and BaseDocType='PRRH' and ItemCode='TestStudy2' 
and WhseCode='01' and (currentdoctype='PUSH' and CurrentDocEntry=15) 
0

В некоторых случаях, когда NOT не работает, вы может решить его, используя простой случай и предложение where. Это исключает только те случаи, когда currentdoctype = 'PUSH' И CurrentDocEntry = 15.

SELECT *, 
CASE 
WHEN currentdoctype ='PUSH' AND CurrentDocEntry = 15 THEN 'c1' 
ELSE 'c2' 
END AS com_con 
FROM table_name 
WHERE BaseDocEntry=15 AND BaseDocType='PRRH' AND ItemCode='TestStudy2' 
    AND WhseCode='01' AND com_con = 'c2'; 
Смежные вопросы