sql >> データベース >  >> RDS >> Oracle

Oracle-別のテーブルの列のグループ内の最小値で行を更新します

    selectステートメントは必要以上に複雑です。次の方法で同じセットを取得します:

    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;
    

    更新はこのように行うことができます。「andexists」セクションはオプションですが、クエリの意図をより明確にするために含める傾向があることに注意してください。

    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. MySQLトリガーの使用

    2. 列mysqlからすべての数字を削除します

    3. SQLServerでのORDERBY... COLLATE

    4. 関数、プロシージャを表示する方法、postgresqlでソースコードをトリガーしますか?