MERGE INTO WATER_WELL_BASIC T1 USING ( SELECT A.*, B.ZDJXJ, C.TGMC, C.TGGJ, C.WJ FROM ( SELECT * FROM YS_DAA01 WHERE MQJB LIKE '3%' OR JH IN (SELECT JH FROM YS_DBA02 WHERE RQ = TRUNC(SYSDATE - 1)) OR JH IN (SELECT JH FROM WATER_WELL_BASIC) ) A LEFT JOIN ( SELECT A.*, ROW_NUMBER() OVER(PARTITION BY JH ORDER BY LRSJ DESC) XH FROM AZS05 A ) B ON A.JH = B.JH AND B.XH = '1' LEFT JOIN ( SELECT A.*, ROW_NUMBER() OVER(PARTITION BY JH ORDER BY TGGJ DESC) XH FROM YS_DAA04 A ) C ON A.JH = C.JH AND C.XH = '1' ) T2 ON (T1.JH = T2.JH) WHEN MATCHED THEN UPDATE SET QKDM = T2.DYDM, DWDM = T2.EJDWDM, DWMC = T2.DWMC, YTDM = T2.YQTDM, BGRQ = SYSDATE, YCLX = '', SCCW = T2.CW, CS = T2.CS, YSDCYL = T2.YSDCYL, YSDCWD = T2.YSDCWD, YSBHYL = T2.YSBHYL, ZSJDDS = T2.SKYCDS1, ZSJDDIS = T2.SKYCDS2, YCZS = (T2.SKYCDS2 + T2.SKYCDS1)/2, TGGG = T2.TGGJ || '/' || T2.WJ, JX = T2.ZDJXJ, STHD = T2.YXHD WHEN NOT MATCHED THEN INSERT(JH, QKDM, DWDM, DWMC, YTDM, BGRQ, YCLX, SCCW, CS, YSDCYL, YSDCWD, YSBHYL, ZSJDDS, ZSJDDIS, YCZS, TGGG, JX, STHD) VALUES(T2.JH, T2.DYDM, T2.EJDWDM, T2.DWMC, T2.YQTDM, SYSDATE, '', T2.CW, T2.CS, T2.YSDCYL, T2.YSDCWD, T2.YSBHYL, T2.SKYCDS1, T2.SKYCDS2, (T2.SKYCDS2 + T2.SKYCDS1)/2, T2.TGGJ || '/' || T2.WJ, T2.ZDJXJ, T2.YXHD)