2016-06-30 3 views
0

меня ниже выберите:Что-то не так в где положение

select sum(col1) as sum1 
from table1 
where col2 = 'A' and col3 in ('AA','BB') 

Теперь, когда я сделал:

select sum(col1) as sum2 
from table1 
where col2 <> 'A' and col3 not in ('AA','BB') 

и попытаться добавить: sum1 + sum2, я получил общую сумму (col1). Но некоторая ценность отсутствует. Ты знаешь почему?

enter image description here

+0

что делает это означает «Но какое-то значение отсутствует». Можете ли вы сложить. Но какое-то значение отсутствует. Предоставьте некоторые примеры данных и проверьте, как спросить http://stackoverflow.com/help/how-to-ask – TheGameiswar

+0

Вы проверили 'NULL'? – HoneyBadger

+1

Эти два условия, где условия не являются полностью противоположными друг другу. ИД в нижнем запросе должен быть ИЛИ. – CrimsonKing

ответ

2

этих двух запросов не полностью комплементарными, Вы не хватает NULL значения для начала. Вам также не хватает WHERE col2 = 'A' AND col3 NOT IN ('AA', 'BB') и WHERE col2 <> 'A' and col3 IN ('AA', 'BB').

Как я сказал, что вы также не хватает NULL, вы можете проверить, как это: WHERE col2 IS NULL OR col3 IS NULL

редактировать Запрошенный альтернативный запрос из первого Дано:

select sum(col1) as sum2 
from table1 
where col2 <> 'A' 
    OR col3 not in ('AA','BB') 
    OR col2 IS NULL 
    OR col3 IS NULL 
+0

can вы, пожалуйста, поставьте мне право, где условие? – 4est

+0

Что вы намерены достичь? – HoneyBadger

+0

Мне нужно разделить значение суммы .... из первого запроса я получил хорошую сумму, из второго запроса я хочу удалить строки из первого запроса, чтобы получить остаток суммы – 4est

0

Потому что может быть строки где col2 = 'A' и col3 не в ('AA', 'BB') или col2 <> 'A' и col3 in ('AA', 'BB')

Смежные вопросы