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 registered (
crn number,
term varchar2(6));
create table course(
crn number,
term varchar2(6),
term_descrip varchar2(25));
begin
insert into registered values (123,'202101');
insert into registered values (456,'202001');
insert into registered values (789,'202101');
insert into registered values (123,'202001');
insert into registered values (456,'201905');
insert into registered values (789,'202101');
insert into registered values (246,'202101');

insert into course values (123,'202001','Anatomy');
insert into course values (123,'202101','Physics');
insert into course values (456,'200001','English');
insert into course values (456,'201901','Algebra');
insert into course values (789,'199901','Gym');
end;
/
1 rows affected
select r.crn, r.term, c.term_descrip
from registered r
outer apply(
select *
from course c
where c.crn = r.crn
and c.term <= r.term
order by c.term desc
fetch first 1 rows only
) c
CRN TERM TERM_DESCRIP
123 202101 Physics
456 202001 Algebra
789 202101 Gym
123 202001 Anatomy
456 201905 Algebra
789 202101 Gym
246 202101 null