sql >> Database >  >> RDS >> Oracle

Oracle - Update rijen met een min-waarde in de groep van een kolom uit een andere tabel

Uw select statement is complexer dan nodig is, u krijgt op deze manier dezelfde set:

SELECT emp.employee_id,min(bo.booking_date) booking_date
FROM employee emp
  LEFT JOIN booking bo 
  ON bo.employee_id = emp.employee_id
WHERE emp.joining_date is NULL
GROUP BY emp.employee_id;

Je update kan op deze manier worden gedaan. Houd er rekening mee dat het gedeelte 'en bestaat' optioneel is, maar ik heb de neiging om het op te nemen om de bedoeling van de zoekopdracht duidelijker te maken.

UPDATE employee emp
  SET emp.joining_date = 
    (SELECT min(booking_date) from booking bo where bo.employee_id = emp.employee_id)
WHERE emp.joining_date IS NULL
  and exists(select * from booking bo where bo.employee_id = emp.employee_id);



  1. Verbinding maken met de database via SSH met behulp van DataGrip

  2. Voer een SQL-query uit bij het opstarten van de MySQL-service

  3. Waarschuwing:mysql_real_escape_string():Toegang geweigerd voor gebruiker ''@'localhost' (met wachtwoord:NEE)

  4. Verzamel schemastatistieken met FND_STATS in EBS 11i en R12