Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Oracle APEX – SQL – Erstellen eines sequentiellen Verlaufs und Berechnen der Tage zwischen den einzelnen Phasen

Ich würde argumentieren, dass Sie bereits alle Metriken erfassen, die Sie benötigen, da die Dauer abgeleitet werden kann aus den vorhandenen Daten. Sie könnten eine Ansicht erstellen:

create or replace  view vw_doc_timeline as
  select t.doc_entry_id, t.doc_id, t.doc_status, t.doc_date
       , case when doc_status = 'Published' then 0
              else lead(doc_date) over (partition by doc_id order by doc_entry_id)
                   - doc_date
              end as duration
  from tbl_doc_timeline t;

Dann:

SQL> select * from vw_doc_timeline;

DOC_ENTRY_ID     DOC_ID DOC_STATUS                     DOC_DATE    DURATION
------------ ---------- ------------------------------ --------- ----------
           1        123 Planned                        05-JUN-12         10
           7        123 Draft                          15-JUN-12          5
          38        123 Approval                       20-JUN-12         10
         102        123 Published                      30-JUN-12          0