add batch remove batch split batch comment selection show hidden batches hide batch highlight batch
db<>fiddle
donate feedback about
By using db<>fiddle, you agree to license everything you submit by Creative Commons CC0.
create table tablea (id, tablea_id) as
select 1000, 1 from dual
union all
select 2000, 2 from dual
union all
select 3000, 3 from dual
3 rows affected
create table tableb (tablea_id, status) as
select 1, 'RE' from dual
union all
select 1, 'RE' from dual
union all
select 1, 'RE' from dual
union all
select 1, 'CO' from dual
union all
select 2, 'RE' from dual
union all
select 2, 'RE' from dual
6 rows affected
SELECT A.id,B.status
FROM TableA A
INNER JOIN TableB B on (A.TableA_ID=B.TableA_ID);
ID STATUS
1000 RE
1000 RE
1000 RE
1000 CO
2000 RE
2000 RE
SELECT A.id,B.status
FROM TableA A
INNER JOIN TableB B on (A.TableA_ID=B.TableA_ID)
WHERE B.status not in ('CO','CL');
ID STATUS
1000 RE
1000 RE
1000 RE
2000 RE
2000 RE
SELECT A.id,B.status
FROM TableA A
INNER JOIN TableB B on (A.TableA_ID=B.TableA_ID)
WHERE NOT EXISTS (
SELECT null
FROM TableB B
WHERE B.TableA_ID=A.TableA_ID
AND B.status in ('CO','CL')
);
ID STATUS
2000 RE
2000 RE
SELECT id, status
FROM (
SELECT A.id,B.status,
COUNT(case when B.status in ('CO','CL') then 1 end)
OVER (partition by A.id) AS cnt
FROM TableA A
INNER JOIN TableB B on (A.TableA_ID=B.TableA_ID)
)
WHERE cnt = 0;
ID STATUS
2000 RE
2000 RE