sql >> Databáze >  >> RDS >> Oracle

Jak se vypořádat s 1 úrovní hlubokého vnořovacího limitu v Oracle?

Můj přístup by byl generovat pevný počet dat počínaje sysdate -1 sestupně a pak na nich pracovat. V následujícím úryvku jsem vybral 100. Jakmile zjistíte správné datum, použijte jej k filtrování podle tabulky 1.

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


  1. Obecné procházení stromu (nekonečno) způsobem prohledávání do šířky

  2. MySql s chybou JAVA. Poslední paket úspěšně odeslaný na server byl před 0 milisekundami

  3. Postgres funguje mnohem pomaleji při použití vstupních proměnných

  4. Spojení dvou podobných tabulek v MySQL