В настоящее время у меня есть хранимая процедура Oracle, которая берет данные из таблиц.Проблема в том, что я агрегирую / группирую, и я не хочу захватывать идентификаторы, иначе это скинет группировку.Я хочу обновить столбец с именем «correlated_flag_id» до «1» (готово) в таблице значений после того, как я вставил агрегированный / сгруппированный набор результатов.Я только хочу получить идентификаторы, которые связаны со значениями, которые мой первый курсор захватил, чтобы получить результаты.Ниже моя попытка (которую я не считаю правильной):
Create or Replace PROCEDURE PROC is
CURSOR c1 is
select sum(v.value_tx) as sum_of_values
, max(v.create_dt) as latest_create_dt
, v.data_date
from value v
group by v.data_date, max(v.create_dt)
BEGIN
Open c1;
LOOP
Fetch c1 into l_var;
insert into value (value_id, value_tx, create_dt, data_date)
values (null, l_var.sum_of_values, l_var.latest_create_dt, l_var.data_Date);
END LOOP;
Close c1;
commit;
--- the bottom is not correct, but i've reached a roadblock
Update value
set correlated_flag_id = 777
where value_id in (select v.value_id from value where trunc(create_dt) <> trunc(sysdate)) (???));
commit;
END PROC;
Заранее спасибо и, пожалуйста, дайте мне знать, если есть какие-либо подробности, которые мне нужно предоставить.