Мне нужна помощь в преобразовании оператора select в инструкцию обновления, чтобы обновить значение field_ind
до Y. Первичный ключ в table_1
находится на field_id,create_date
. Здесь оператор выбора используется для поиска записей, мне нужно обновить:Oracle - Справка по созданию инструкции обновления (в режиме ожидания)
SELECT cd.field_id, cd.create_date, cd.field_ind FROM table_1 cd
JOIN table_2 ct
ON cd.field_id = ct.field_id
AND cd.field_ind = 'N'
JOIN table_3 c
ON c.field_id = cd.field_id
AND c.field_rpt = 'N'
WHERE cd.create_date IN (SELECT MAX(create_date)
FROM table_1
WHERE field_id = ct.field_id);
Образец данных:
FIELD_ID CREATE_DATE FIELD_IND
123 1/1/2016 N
123 2/1/2017 N
456 1/1/2016 N
456 3/1/2017 N
789 1/1/2015 N
789 1/31/2017 N
Ожидаемые результаты:
FIELD_ID CREATE_DATE FIELD_IND
123 1/1/2016 N
123 2/1/2017 Y
456 1/1/2016 N
456 3/1/2017 Y
789 1/1/2015 N
789 1/31/2017 Y
Любая помощь приветствуется. Благодарю.
Обновить его, где и на что? Примеры данных и ожидаемые результаты могут помочь прояснить, что вы имеете в виду. –
Обновление поля field_ind в таблице_1. – user3224907
Но к чему? Ваш запрос получает этот столбец - вы хотите обновить его до того же значения, которое у него уже есть? Или вы хотите обновить все строки для идентификатора, чтобы иметь то же значение, что и значение из строки с самой последней датой создания для этого идентификатора? –