Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Łączenie danych z 5 tabel bez duplikatów wartości i uzyskiwanie wyniku z niestandardowym statusem w Oracle 10g

Możesz „uszeregować” różne statusy w oparciu o swoją logikę, a następnie wybrać z nich najnowszy status. Możesz użyć logiki podobnej do poniższej, która odrzuca wszystkie „odrzucenia”.

Upewnij się, że uwzględniasz wszystkie inne możliwe stany, jeśli zależy Ci na kolejności dla pozostałych.

with t1 as
( select 1 id, 'Waiver Requested'        status from dual union all
  select 1 id, 'Rejected'        status from dual union all
  select 2 id, 'Waiver Requested'        status from dual union all
  select 2 id, 'Waiver Requested'        status from dual union all
  select 3 id, 'Rejected'                status from dual union all
  select 3 id, 'Rejected'                status from dual union all
  select 4 id, 'Waiver Requested'        status from dual union all
  select 4 id, 'Cancelled'               status from dual
)
select id,
       status,
       max(status) KEEP (DENSE_RANK FIRST
                         order by (case when status ='Rejected' then -1
                                            else 1
                                       end) desc)
          over (partition by id) final_status
  from t1

        ID STATUS           FINAL_STATUS
---------- ---------------- ----------------
         1 Waiver Requested Waiver Requested
         1 Rejected         Waiver Requested
         2 Waiver Requested Waiver Requested
         2 Waiver Requested Waiver Requested
         3 Rejected         Rejected
         3 Rejected         Rejected
         4 Waiver Requested Waiver Requested
         4 Cancelled        Waiver Requested



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Różnica UTL_SMTP między DATA, WRITE_DATA i WRITE_RAW_DATA

  2. Jak mogę policzyć liczbę słów w ciągu w Oracle?

  3. Uszkodzenie daty Oracle podczas aktualizacji

  4. widoki Oracle i ruch w sieci

  5. jak zdobyć PL/SQL w SQLFiddle?