2015-10-29 6 views
0

У меня есть эта таблица:Показать только последовательные записи

item_number  item  owner_id  status 
-----------  ----  --------  ------ 

12648  Powerbank  5569  returned 
657891  Flash drive  5569  returned 
6326   Wireless Mouse 5569  sold 
987998  Pocket Wifi  8897  sold 
78134  Wireless Mouse 7741  sold 
7845159  Keyboard   1598  sold 
87513  Monitor   1598  sold 
9841523  Speakers   8965  returned 

и я хочу, чтобы результаты были так:

item_number  item  owner_id  status 
-----------  ----  --------  ------ 
987998  Pocket Wifi  8897  sold 
78134  Wireless Mouse 7741  sold 
7845159  Keyboard   1598  sold 
87513  Monitor   1598  sold 

Так, в основном, то, что я хочу, чтобы извлечь владельцев, которые имели постоянно продаваемые предметы. Когда пользователь имеет возвращенный элемент, он не должен появляться в результатах.

Может ли кто-нибудь помочь мне с этим?

спасибо!

+0

Какова логика для 'item_number' в результате? –

ответ

1

Если вы хотите, чтобы все строки для владельцев, которые не вернулись ничего, а затем использовать not exists пункт:

select t.* 
from table t 
where not exists (select 1 
        from table t2 
        where t2.owner_id = t.owner_id and t2.status <> 'sold' 
       ); 

Если вы просто хотите получить список владельцев, то я бы с агрегацией и having:

select owner_id 
from table t 
group by owner_id 
having sum(status <> 'sold') = 0; 
+0

Большое вам спасибо! Это очень помогло. –

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