Oracle
 sql >> डेटाबेस >  >> RDS >> Oracle

दिनांक सीमाएं मर्ज करें

कर्मचारी ए की 07-01-2013 से 08-10-2014 तक दो पंक्तियाँ हैं; मुझे लगा कि यह एक गलती है और मैंने एक पंक्ति को हटा दिया है।

इसके अलावा, यह दिनांक सीमाओं के लिए "अंतराल और द्वीप" समस्याओं को हल करने के लिए "टैबिबिटोसन विधि" का एक अनुप्रयोग है। चाल "समूह" बनाने में है (gp ) आसन्न अंतराल के लिए।

with
     prep ( id, st_dt, end_dt, gp, pos, locn, status ) as (
       select id, st_dt, end_dt, 
              end_dt - sum( end_dt - st_dt + 1 ) over (partition by id, pos, locn, status 
                                                       order by st_dt),
              pos, locn, status
       from   asgn
     )
select id, min(st_dt) as st_dt, max(end_dt) as end_dt, pos, locn, status
from   prep
group by id, gp, pos, locn, status
order by id, st_dt
;



ID         ST_DT      END_DT     POS        LOCN           STATUS
---------- ---------- ---------- ---------- ---------- ----------
A          12-31-2006 08-16-2009 CLERK      LAX                 3
A          08-17-2009 10-04-2009 CLERK      LAX                 0
A          10-05-2009 04-09-2013 OPR        NYC                 3
A          04-10-2013 08-10-2014 CLERK      LAX                 3
B          04-10-2013 05-31-2013 SUP        LAX                 3
B          06-01-2013 06-30-2014 SUP        LAX                 0
B          07-01-2013 08-10-2014 SUP        LAX                 3
B          08-11-2014 08-11-2014 CLERK      NYC                 3
B          08-12-2014 02-10-2016 SUP        LAX                 3
B          02-11-2016 08-12-2016 OPER       SFO                 3

 10 rows selected 



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Oracle में दो साल के महीने और दिन के मूल्यों के बीच अंतर

  2. Oracle ट्रिगर जो मासिक आधार पर बाधा की जाँच करता है

  3. Oracle ऐप्स में इतिहास तालिकाएँ पैच करें (11i/R12.1/R12.2)

  4. Oracle:मान्य माह नहीं है

  5. Oracle में सभी तालिकाओं की सूची प्राप्त करें?