2016-09-08 31 views
0
ids yesterday date  ids today  date 

s 01516047894532 07.09.2016 01516047894532 08.09.2016 
s 01516047894533 07.09.2016 01516047894533 08.09.2016 
m 01516047894524 07.09.2016 01516047894534 08.09.2016 
m 01516047894525 07.09.2016 01516047894535 08.09.2016 
m 01516047894526 07.09.2016 01516047894536 08.09.2016 
s 01516047894537 07.09.2016 01516047894537 08.09.2016 
s 01516047894538 07.09.2016 01516047894538 08.09.2016 
n        01516047894539 08.09.2016 

Я пытаюсь выяснить, был ли объект удален из моего склада на основе уникального идентификатора и даты. Моя основная проблема заключается в том, что все эти данные хранятся в одной таблице. Я сделал простой пример выше. Прежде всего (s = остался, m = выведен, n = новый на складе). Мне нужно найти все объекты, которые вышли. Я попытался найти все объекты, которые на самом деле оставались, а не использовать NOT IN, но я не могу добавить к нему новые объекты. Это моя попытка:Проверьте, остался ли объект на складе, остался или новый. На основе двух переменных

select y.id 
from warehouse y 
INNER JOIN warehouse t 
ON (y.date != t.date AND y.id= t.id) 

Я отсутствует 01516047894539 идентификатор, я уверен, что есть простой способ, но я не могу видеть его.

ответ

0


Просто используйте y.date = нулевое состояние

select y.id 
    from warehouse y 
     JOIN warehouse t 
     ON y.date != t.date AND 
     y.id= t.id AND 
     y.id= null ; 

Это поможет вам

+0

Это ничего не возвращает, я также пытался ИЛИ y.id = нуль, но тот же результат, как мой старый раствор , Я проверил внутреннее соединение без каких-либо условий и нет нулевого поля вообще, может быть, он побил бы ту же таблицу? –

+0

вместо предоставления внутреннего соединения, просто укажите join –

+0

Это также не работает, но я также считаю, что выражение «y.id = t.id AND y.id = null»; никогда не может быть правдой. –