ALTER PROCEDURE UpdateYSDZBJY_GZTH AS BEGIN TRUNCATE TABLE YingShouZhanKuanJY INSERT INTO YingShouZhanKuanJY(FID,FSaleOrgId,FSalerId,[DATE],ContractNumber,ProjectName,OrderAmount,FALLAmountFor,PaymentAmount,ShippedDebt,InvoicedDebt,OwedTickets,IsEnded,Remark) SELECT FID,FSaleOrgId,FSalerId,[Date],CONTRACTNUMBER,ProjectName,OrderAmount,BillingAmount,PaymentAmount,ShippedDebt,InvoicedDebt,OwedTickets,IsEnded,Remark FROM YingShouZhanKuanMX_GZTH --对表里未添加数据进行添加 select FID,sum(shipmentsamount) as '发货金额', sum(ReturnAmount) AS '退货金额', SUM(PPBillingAmount) AS '普票金额', SUM(ZPBillingAmount) AS '专票金额' INTO #TEMP1 from yingshouzhankuanmx_gzth group by fid UPDATE A SET A.ShipmentsAmount = B.发货金额, A.FBillAllAmount = B.退货金额, A.PPFALLAmountFor = B.普票金额, A.ZPFALLAmountFor = B.专票金额 FROM YingShouZhanKuanJY A INNER JOIN #TEMP1 B ON A.FID = B.FID --将重复项FID去重 TRUNCATE TABLE YingShouZhanKuanJY_GZTH INSERT INTO YingShouZhanKuanJY_GZTH SELECT *, ROW_NUMBER() OVER (PARTITION BY FID ORDER BY FID) as row_num FROM YingShouZhanKuanJY DELETE FROM YingShouZhanKuanJY_GZTH WHERE row_num <> 1; --更新专票和普票的开票时间 UPDATE A SET A.PPBillingDate = B.PPBillingDate,A.ZPBillingDate = B.ZPBillingDate FROM YingShouZhanKuanJY_GZTH A INNER JOIN YingShouZhanKuanMX_GZTH B ON A.FID = B.FID DROP TABLE #TEMP1 END