Mijn benadering zou zijn om een vast aantal datums te genereren vanaf sysdate -1 aflopend en er vervolgens aan te werken. In het volgende fragment heb ik 100 gekozen. Zodra je de juiste datum hebt, gebruik je deze om op tabel 1 te filteren.
select dates
from (
select rownum as rn,
dates
from (
select x.dates,
nvl2(h.holiday_from,'T','F') as hd,
decode (to_char(x.dates,'D')-1,6,'T',7,'T','F') as WE
from (
select trunc(sysdate) - rownum as dates
from dual d
connect By rownum <= 100 -- change this number if you plan on having long holidays
) x
left outer join holidays h
on x.dates between h.holiday_fromand h.holiday_to
)
where hd = 'F' and WE = 'F' -- exclude holidays and weekends
)
where rn = 14; -- return the 14th working day from now