У меня есть оператор SQL, как показано ниже, я не смог выполнить оператор в Oracle, так как он не поддерживает соединения в обновлении. Я попытался использовать обновление с использованием временной таблицы и завершил работу, однако я хотел бы использовать оператор Merge и не смог написать код.
Дайте мне знать, если в Oracle есть возможность использовать объединения в обновлении, которое не увеличивает производительность.
UPDATE A SET
YearStartPD = B.PERIOD_CODE,
YearEndPD = A.PERIOD_CODE,
PY_YearStartPD = C.PERIOD_CODE,
PY_YearEndPD = A.PY_WeekEndPD
FROM dbo.DIM_TIME A
INNER JOIN
(
select PERIOD_CODE,WEEK_PERIOD_CODE,YEAR_CODE from dbo.DIM_TIME
WHERE WEEK_PERIOD_CODE = '01'
) B ON B.Year_Code = A.Year_Code
LEFT JOIN
(
select PERIOD_CODE,WEEK_PERIOD_CODE,YEAR_CODE from dbo.DIM_TIME
WHERE WEEK_PERIOD_CODE = '01'
) C ON C.Year_Code = A.Year_Code - 1