sql >> Database >  >> RDS >> Oracle

Hoe krijg ik het laatste werknemersrecord in Oracle?

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

Hierboven krijgt u een record met maximale effectieve__Datum voor elke afzonderlijke emp_id.

Uw tweede vereiste om het record voor een bepaalde datum te retourneren, moet worden vervuld door deze vraag:

("status ASC" - zorgt voor het verkrijgen van de status "Joiner" als er ook "Leaver" is voor dezelfde datum.)

 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. Hoe de GROUP_CONCAT-functie op MSSQL te gebruiken?

  2. Hoe het aantal kolommen in een tabel te tellen met SQL?

  3. Waarom cast JSON null niet naar SQL null in postgres?

  4. Drop en maak ENUM met sequelize correct?