У меня есть этот код:
UPDATE fizmod_csat_szolgaj
SET
erv_vege = TO_DATE('2020-JAN.-01', 'YYYY-MON.-DD')
WHERE
fizmod_csat_szolgaj_id IN (
SELECT
fmcsatszolg.fizmod_csat_szolgaj_id
FROM
szolg_ajanlat_tipus szolgajtip
INNER JOIN fizmod_csat_szolgaj fmcsatszolg ON ( fmcsatszolg.szolgaltatasi_ajanlat_tipus_id = szolgajtip.szolgaltatasi_ajanlat_tipus_id )
INNER JOIN apex_changeset ac ON ( ac.CHANGESET_ID = szolgajtip.CHANGESET_ID AND ac.status_es = 'CHANGESET_STATUS#ELES' )
WHERE
greatest((
SELECT
MAX(erv.erv_vege)
FROM
ervenyesseg erv
WHERE
erv.szolgaltatasi_ajanlat_tipus_id = szolgajtip.szolgaltatasi_ajanlat_tipus_id
),(
SELECT
MAX(erv.ertekesith_vege_d)
FROM
ervenyesseg erv
WHERE
erv.szolgaltatasi_ajanlat_tipus_id = szolgajtip.szolgaltatasi_ajanlat_tipus_id
)) < '2020-JAN. -01'
)
AND engedelyezo_jel = '1';
на pastebin: https://pastebin.com/xpVJyYC9
Я хотел бы изменить инструкцию SET, чтобы обновить erv_vege с помощью дата в ГДЕ Итак,
greatest((
SELECT
MAX(erv.erv_vege)
FROM
ervenyesseg erv
WHERE
erv.szolgaltatasi_ajanlat_tipus_id = szolgajtip.szolgaltatasi_ajanlat_tipus_id
),(
SELECT
MAX(erv.ertekesith_vege_d)
FROM
ervenyesseg erv
WHERE
erv.szolgaltatasi_ajanlat_tipus_id = szolgajtip.szolgaltatasi_ajanlat_tipus_id
))
вернет дату (например, 2019.JAN.02), и я хочу обновить erv_vege с этой датой.
SET erv_vege = TO_DATE( the date from greatest(...), 'YYYY-MON.-DD')
Я пробовал с
SET erv_vege = SELECT to_date(GREATEST(
( SELECT MAX(erv.erv_vege) FROM ERVENYESSEG erv WHERE erv.szolgaltatasi_ajanlat_tipus_id = szolgajtip.szolgaltatasi_ajanlat_tipus_id ),
( SELECT MAX(erv.ERTEKESITH_VEGE_D) FROM ERVENYESSEG erv WHERE erv.szolgaltatasi_ajanlat_tipus_id = szolgajtip.szolgaltatasi_ajanlat_tipus_id )
), 'YYYY-MON.-DD')
FROM ERVENYESSEG erv, SZOLG_AJANLAT_TIPUS szolgajtip ...
но это не сработало. Как мне подойти к этой проблеме?