---第一步 BEGIN TRAN UPDATE T_SAL_ORDER SET F_SOURPAPERCONTRACT=ISNULL(bbbbb.F_CONTRACTNUMBER,''), F_sourorderno=ISNULL(bbbbb.FBILLNO,'') FROM ( SELECT aaa.FID,jjj.F_CONTRACTNUMBER,jjj.FBILLNO,b.FSBILLID FROM T_SAL_ORDER aaa LEFT JOIN (SELECT FENTRYID,FID FROM T_SAL_ORDERENTRY cc ) ccc ON ccc.FID=aaa.FID INNER JOIN (SELECT FSTABLENAME,FSBILLID,aa.FENTRYID FROM dbo.T_SAL_ORDERENTRY_LK aa WHERE FSTABLENAME='T_SAL_ORDERENTRY' ) b ON b.FENTRYID=ccc.FENTRYID LEFT JOIN T_SAL_ORDER jjj ON b.FSBILLID=jjj.FID ) bbbbb WHERE bbbbb.FID=T_SAL_ORDER.FID ROLLBACK COMMIT ---第二步:刷标准退货销售订单推退货通知单的-- BEGIN TRAN UPDATE T_SAL_RETURNNOTICE SET F_SOURPAPERCONTRACT=bb.F_SOURPAPERCONTRACT,F_sourorderno=bb.F_sourorderno FROM dbo.T_SAL_ORDER bb WHERE T_SAL_RETURNNOTICE.F_Papercontract=bb.F_CONTRACTNUMBER AND T_SAL_RETURNNOTICE.FSALEORGID=bb.FSaleOrgId COMMIT ---第三步:刷非标准的直接从源销售订单推退货通知单的-- BEGIN TRAN UPDATE T_SAL_RETURNNOTICE SET F_SOURPAPERCONTRACT=bb.F_CONTRACTNUMBER,F_sourorderno=bb.FBILLNO FROM (SELECT aa.fid, bb.F_CONTRACTNUMBER,bb.FBILLNO FROM T_SAL_RETURNNOTICE aa LEFT JOIN dbo.T_SAL_ORDER bb ON aa.F_Papercontract=bb.F_CONTRACTNUMBER AND aa.FSALEORGID=bb.FSaleOrgId WHERE bb.F_SOURPAPERCONTRACT='' )bb WHERE T_SAL_RETURNNOTICE.fid=bb.FID SELECT a.F_SOURPAPERCONTRACT,a.F_sourorderno,a.F_SALEORGID,b.* FROM T_SAL_ORDER a LEFT JOIN T_SAL_RETURNNOTICE b ON a.F_CONTRACTNUMBER=b.F_Papercontract AND b.FSALEORGID=a.FSaleOrgId WHERE a.F_CONTRACTNUMBER='W202504240006-TH01' SELECT FSALEORGID,* FROM T_SAL_RETURNNOTICE WHERE F_Papercontract='W202504240006-TH01'