试试如下的语句, 不知道是否等效!
UPDATE UT_JOURNAL t
SET (t.OTHER_DEPT_CD, t.OTHER_AC_CD, t.OTHER_SUB_AC_CD) = (select tmp.DEPT_CD,
tmp.AC_CD,
tmp.SUB_AC_CD
from (SELECT x.DEPT_CD,
x.AC_CD,
x.SUB_AC_CD,
x.APP_MONTH,
x.AC_IF_TYPE,
x.SLIP_CNT_ID,
x.JNL_NO,
row_number() over(partition by x.APP_MONTH, x.AC_IF_TYPE, x.SLIP_CNT_ID, x.JNL_NO order by x.JNL_NO_SEQ desc) max_val
FROM UT_JOURNAL x
WHERE 0 = 0
AND x.COMPANY_CD = 'TEST'
AND x.JNL_GRP_NO = '0000000225'
AND x.DC_TYPE = '1') tmp
where tmp.max_val = 1
AND tmp.APP_MONTH = t.APP_MONTH
AND tmp.AC_IF_TYPE = t.AC_IF_TYPE
AND tmp.SLIP_CNT_ID = t.SLIP_CNT_ID
AND tmp.JNL_NO = t.JNL_NO)
WHERE 0 = 0
AND t.COMPANY_CD = 'TEST'
AND t.JNL_GRP_NO = '0000000225'
AND t.DC_TYPE = '0';
|