Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

Bagaimana cara menangani batas bersarang dalam 1 level di Oracle?

Pendekatan saya adalah menghasilkan sejumlah tanggal tetap mulai dari sysdate -1 turun dan kemudian mengerjakannya. Dalam cuplikan berikut saya memilih 100. Setelah Anda mendapatkan tanggal yang tepat, gunakan saja untuk memfilter pada tabel1.

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. Memicu masalah mutasi

  2. Bagaimana cara menggunakan Partisi By atau Max?

  3. Kueri WHERE_IN dengan kunci komposit?

  4. Cara menghapus baris di oracle

  5. Penulisan Ulang URL Weblogic 11g