Я столкнулся с этим сценарием: столбец Employee имеет столбец joining_date. Для резервирования таблиц для Employee используется столбец «book_date» и внешний ключ (employee_id). У сотрудника есть несколько значений NULL в столбце joining_date. Я хочу заполнить их значением FIRST booking_date для этих сотрудников. Как я могу сделать?Oracle - обновить строки с минимальным значением в группе столбца из другой таблицы
FYI: Я могу запросить с комплексом присоединиться к отчетности, чтобы извлечь первую booking_date сотрудников, чьи joining_date является NULL, как показано ниже:
SELECT emp.employee_id, emp.joining_date, temp2.booking_date FROM employee emp
LEFT JOIN (SELECT bo.employee_id, bo.booking_date FROM booking bo
INNER JOIN (SELECT employee_id, MIN(booking_date) mindate FROM booking GROUP BY employee_id) temp1
ON bo.employee_id = temp1.employee_id AND bo.booking_date = temp1.mindate) temp2
ON emp.employee_id = temp2.employee_id
WHERE emp.joining_date IS NULL;
Но я борюсь с вводом этого комплекса выберите в заявлении обновления:
UPDATE employee emp
SET emp.joining_date = (SELECT ...)
WHERE emp.joining_date IS NULL;