MERGE INTO WATER_TUBULAR_STRUCTURE T1 USING ( SELECT B.DWMC, B.DYDM, B.EJDWDM, B.DWDM, A.JH, A.KGRQ, A.WGRQ, A.CSLB, A.KGRQ - A.LAST_WGRQ ZJSJ, A.LAST_WGRQ FROM ( SELECT A.*, LEAD(KGRQ, 1, NULL) OVER(PARTITION BY JH ORDER BY KGRQ) LAST_WGRQ FROM YS_DDH01 A ) A LEFT JOIN YS_DAA01 B ON A.JH = B.JH ) T2 ON (T1.JH = T2.JH AND T1.WJRQ = T2.WGRQ) WHEN MATCHED THEN UPDATE SET DWDM = T2.EJDWDM, DYDM = T2.DYDM, NEXT_ZYRQ = NULL, CSLB = T2.CSLB, ZJSJ = T2.ZJSJ, GZ_YXQ = T2.ZJSJ WHEN NOT MATCHED THEN INSERT(DWDM, DYDM, JH, WJRQ, NEXT_ZYRQ, CSLB, ZJSJ, GZ_YXQ, GYLX) VALUES(T2.EJDWDM, T2.DYDM, T2.JH, T2.WGRQ, NULL, T2.CSLB, T2.ZJSJ, T2.ZJSJ, 'GYLX1') UPDATE WATER_TUBULAR_STRUCTURE SET FGQ = #{fgq,jdbcType=VARCHAR}, CD_PSQ = #{cdPsq,jdbcType=VARCHAR}, MDGJ = #{mdgj,jdbcType=VARCHAR}, BCGJ = #{bcgj,jdbcType=VARCHAR}, XJF = #{xjf,jdbcType=VARCHAR} WHERE JH = #{jh,jdbcType=VARCHAR} AND WJRQ = #{wjrq,jdbcType=DATE}