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

Bagaimana cara mendapatkan catatan karyawan terbaru di oracle?

SELECT * FROM 
( SELECT  
    e.*,
    ROW_NUMBER() OVER (partition by emp_id order by effective_date DESC) r
FROM  
    EMPLOYEE  e)
WHERE r = 1;

Di atas akan memberi Anda catatan dengan Effective__Date maksimal untuk setiap emp_id yang berbeda.

Persyaratan kedua Anda untuk mengembalikan catatan untuk tanggal tertentu harus dipenuhi oleh kueri ini:

("status ASC" - akan mengambil status "Joiner" jika ada juga "Leaver" untuk tanggal yang sama.)

 SELECT * FROM 
( SELECT  
    e.*,
    ROW_NUMBER() OVER (partition by emp_id order by effective_date DESC, status ASC) r
FROM  
    EMPLOYEE  e
WHERE effective_date <= '<your desired date>')
WHERE r=1;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. dbms_lob.getlength() vs. length() untuk menemukan ukuran gumpalan di Oracle

  2. Bagaimana cara membagi data yang ditanyakan dengan pembatas di Oracle?

  3. Kueri nama kolom dari tabel dari pengguna lain

  4. Situasi awal dengan Oracle (sub permintaan barang)

  5. Menghitung hari libur:jumlah hari Sabtu dan Minggu dalam kueri rentang tanggal tertentu di Oracle