Do you mean this ?
drop table quote;
create table quote (
quote_id number(10)
);
drop table quote_section_xref;
create table quote_section_xref (
quote_id number(10),
section_id varchar2(5),
roof_system_id number(10)
);
drop table roof_system;
create table roof_system (
roof_system_id number(10),
long_name varchar2(30),
roof_system_type number(3)
);
insert into quote values ( 123 );
insert into quote values ( 456 );
insert into quote values ( 789 );
insert into quote values ( 689 );
insert into quote_section_xref values ( 123, 'a', 1200 );
insert into quote_section_xref values ( 123, 'b', 1200 );
insert into quote_section_xref values ( 123, 'c', 2200 );
insert into quote_section_xref values ( 123, 'd', 1400 );
insert into quote_section_xref values ( 456, 'a', 1600 );
insert into quote_section_xref values ( 456, 'b', 1400 );
insert into quote_section_xref values ( 789, 'a', 2200 );
insert into quote_section_xref values ( 689, 'a', 1200 );
insert into roof_system values (1200,'ADH roof',1);
insert into roof_system values (1400,'BIT roof',2);
insert into roof_system values (1600,'CIT roof',3);
insert into roof_system values (2200,'AMT roof',4);
select
a.quote_id,
a.section_id,
b.long_name
from quote_section_xref a, roof_system b
where a.roof_system_id = b.roof_system_id
and a.quote_id in
( select c.quote_id from quote_section_xref c
where c.roof_system_id in
(select d.roof_system_id from roof_system d
where d.roof_system_type = 1 ));
Output:
QUOTE_ID SECTI LONG_NAME
---------- ----- ------------------------------
123 a ADH roof
123 b ADH roof
123 c AMT roof
123 d BIT roof
689 a ADH roof