Oracle
 sql >> база данни >  >> RDS >> Oracle

Как да се справим с ограничението за дълбоко влагане от 1 ниво в Oracle?

Моят подход би бил да генерирам фиксиран брой дати, започвайки от sysdate -1 низходящ и след това да работя върху тях. В следващия фрагмент избрах 100. След като получите правилната дата, просто я използвайте, за да филтрирате таблица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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Каква е разликата между ORA-12571:грешка при писане на TNS пакети и ORA-03135:връзката е изгубена?

  2. Oracle Query - Избиране на записи с помощта на данни от колона от първата таблица

  3. Извличане на записи от свързан списък в релационна база данни

  4. Копиране на ред и промяна на малка част от колони?

  5. Заявка в Oracle за избор с подзаявка