Я пытаюсь ограничить свои строки на основе значений столбцов, но с трудностями получить синтаксис правильно.Oracle SQL: отдельный список строк на основе результатов, не имеющих значения столбца
Дано:
create table acctprefs (acctid char(5),
prefcode char(3));
insert into acctprefs values ('10000', 'ABC');
insert into acctprefs values ('10000', 'DEF');
insert into acctprefs values ('10000', 'GHI');
insert into acctprefs values ('10001', 'ABC');
insert into acctprefs values ('10001', 'DEF');
insert into acctprefs values ('10001', 'GHI');
insert into acctprefs values ('10001', 'ZZZ');
Я хотел бы вернуть четкий список счетов, которые не имеют «ZZZ» предпочтение. В этом случае, я стараюсь, чтобы получить результат, который был бы просто:
Я смог получить отдельные учетные записи с «ZZZ» с ниже запроса, но мне просто нужно обратное ,
select *
from
acctprefs ap
where
ap.prefcode in
(select ap.prefcode from acctprefs ap group by ap.prefcode having(ap.prefcode = 'ZZZ'));
Пробовали ли вы добавлять 'NOT IN' вместо 'IN' рядом с 'ap.prefcode'? Извините, если это звучит действительно глупо. – mfredy
Спасибо mfredy. Я сделал, но это заканчивается тем, что дает мне все строки, у которых нет префикса ZZZ, в данном случае 6 строк. – Aaron
Вы попробовали выбрать 'SELECT DISTINCT' и добавить' HAVING', чтобы исключить 'zzz'? Глупый вопрос снова @Aaron – mfredy