--SELECT * INTO T_CRM_CONTRACT_20240816164533 FROM T_CRM_CONTRACT --备份更新前 --SELECT * INTO T_CRM_CONTRACT_20240816164533_AFTER FROM T_CRM_CONTRACT --备份更新后 ;WITH #辅助资料 AS ( SELECT t1_l.FNAME,t1e_l.FDATAVALUE,t1e.FENTRYID FROM T_BAS_ASSISTANTDATA_L t1_l INNER JOIN T_BAS_ASSISTANTDATAENTRY t1e on t1_l.FID = t1e.FID INNER JOIN T_BAS_ASSISTANTDATAENTRY_L t1e_l on t1e_l.FENTRYID = t1e.FENTRYID AND t1e_l.FLOCALEID = 2052 WHERE t1_l.FLOCALEID = 2052 ) , #签约人 AS ( SELECT t0.FMASTERID,t0_l.FNAME FROM T_BD_STAFF t0 INNER JOIN T_BD_STAFF_L t0_l on t0.FMASTERID = t0_l.FSTAFFID AND t0_l.FLocaleID = 2052 WHERE t0.FDOCUMENTSTATUS = 'C' AND t0.FFORBIDSTATUS = 'A' ) , #枚举表 AS ( SELECT t0.FID,t0_l.FNAME,t0e.FENUMID,t0e.FSEQ,t0e.FVALUE,t0e_l.FCAPTION FROM T_META_FORMENUM t0 INNER JOIN T_META_FORMENUMITEM t0e on t0e.FID = t0.FID INNER JOIN T_META_FORMENUM_L t0_l on t0.FID = t0_l.FID AND t0_l.FLOCALEID = 2052 INNER JOIN T_META_FORMENUMITEM_L t0e_l on t0e.FENUMID = t0e_l.FENUMID AND t0e_l.FLOCALEID = 2052 ) ,#最终 AS ( SELECT t0.FBILLNO ,t0.FID ,t0.F_CYG_YSALESNUMBER AS '原销售订单号' ,ISNULL(tt.源销售单号,'') AS [O_原销售订单号] ,t0.F_CYG_ORDERCONTACT AS '客户联系人' ,ISNULL(tt.[客户联系人],t0.F_CYG_ORDERCONTACT) AS [O_客户联系人] ,t0.F_CYG_ORDERPHONENO AS '客户联系电话' ,ISNULL(tt.客户联系电话,t0.F_CYG_ORDERPHONENO) AS [O_客户联系电话] ,t0.F_CYG_CONTACTADDRESS AS '客户联系地址' ,ISNULL(tt.客户联系地址,t0.F_CYG_CONTACTADDRESS) AS [O_客户联系地址] ,t0.F_CYG_PAPERRETURNDATE AS '纸质合同返回日期' ,tt.[纸质合同返回日期] AS [O_纸质合同返回日期] ,t0.F_CYG_SIGNINGDATE AS '合同签约日期' ,tt.[合同签约日期] AS [O_合同签约日期] ,t0.F_CYG_SIGNATORY AS '合同签约人' ,ISNULL(t4.FMASTERID,0) AS [O_合同签约人_ID] ,tt.[合同签约人] AS [O_合同签约人] ,t0.F_CYG_CONTRACTSTATUSNEW AS '合同返回状态' ,ISNULL(t6.FVALUE, '') AS [O_合同返回状态_ID] ,tt.[合同返回状态] AS [O_合同返回状态] ,t0.F_CYG_HTFSZTBZ AS '合同返回状态备注' ,ISNULL(tt.合同返回状态备注,'') AS [O_合同返回状态备注] ,t0.F_CYG_STATISTICALDATE AS '统计日期' ,ISNULL(tt.[统计日期],'') AS [O_统计日期] ,t0.FMODIFYDATE AS [修改日期] ,GETDATE() AS [O_修改日期] ,t0.FMODIFIERID [修改人_ID] ,1562754 AS [O_修改人_ID] FROM 销售合同数据更新_202408161550 tt INNER JOIN T_CRM_CONTRACT t0 on tt.单据编号 = t0.FBILLNO INNER JOIN T_CRM_CONTRACTFIN t0f on t0.FID = t0f.FID OUTER APPLY ( SELECT TOP 1 * FROM #签约人 WHERE FNAME = tt.[合同签约人] ORDER BY FMASTERID ASC ) t4 LEFT JOIN #枚举表 t6 on t6.FNAME = '合同返回状态' AND t6.FCAPTION = tt.[合同返回状态] ) --SELECT FID,COUNT(1) FROM #最终 GROUP BY FID HAVING COUNT(1) >1 --SELECT * FROM #最终 t0 --WHERE 1 = 1 UPDATE t0 SET t0.F_CYG_YSALESNUMBER = tt.[O_原销售订单号] ,t0.F_CYG_ORDERCONTACT = tt.[O_客户联系人] ,t0.F_CYG_ORDERPHONENO = tt.[O_客户联系电话] ,t0.F_CYG_CONTACTADDRESS = tt.[O_客户联系地址] ,t0.F_CYG_PAPERRETURNDATE = tt.[O_纸质合同返回日期] ,t0.F_CYG_SIGNINGDATE = tt.[O_合同签约日期] ,t0.F_CYG_SIGNATORY = tt.[O_合同签约人_ID] ,t0.F_CYG_CONTRACTSTATUSNEW = tt.[O_合同返回状态_ID] ,t0.F_CYG_HTFSZTBZ = tt.[O_合同返回状态备注] ,t0.F_CYG_STATISTICALDATE = tt.[O_统计日期] ,t0.FMODIFIERID = tt.[O_修改人_ID] ,t0.FMODIFYDATE = tt.O_修改日期 FROM T_CRM_CONTRACT t0 INNER JOIN #最终 tt on tt.FID = t0.FID