;WITH #初始数据 AS ( SELECT t0.FBILLNO,t0e.FSEQ,t0.FDATE,t2.F_SUPPLIERCODE AS 'SCode' ,t0.FID,t0e_d.FDELIVERYDATE,t0e.FENTRYID ,SUBSTRING(CONVERT(varchar(8),t0e_d.FDELIVERYDATE,112),3,6) AS 'D' ,CONVERT(INT,t0e.FQTY) AS FQTY ,CONVERT(INT,SUM(t0e.FQTY) OVER(PARTITION BY t0e.FID ORDER BY t0e.FSEQ ROWS UNBOUNDED PRECEDING)) AS S ,ISNULL(t1.流水号,0) AS 'InitialValue' FROM T_PUR_POORDER t0 OUTER APPLY ( SELECT MAX(CONVERT(INT,RIGHT(t1e.F_LIUSHUIHAO_TEXT_QTR,5))) AS '流水号' FROM T_PUR_POORDER t1 INNER JOIN T_PUR_POORDERENTRY t1e on t1e.FID = t1.FID WHERE 1=1 AND t0.FPURCHASEORGID = 1901189 AND t1e.F_LIUSHUIHAO_TEXT_QTR != '' AND t0.FSUPPLIERID = t1.FSUPPLIERID AND CONVERT(varchar(8),t1.FDATE,112) = CONVERT(varchar(8),t0.FDATE,112) ) t1 INNER JOIN T_BD_SUPPLIER t2 on t2.FSUPPLIERID = t0.FSUPPLIERID AND t2.F_SUPPLIERCODE != '' INNER JOIN T_PUR_POORDERENTRY t0e on t0.FID = t0e.FID INNER JOIN T_PUR_POORDERENTRY_D t0e_d on t0e.FENTRYID = t0e_d.FENTRYID WHERE 1 = 1 AND t0.FBILLNO IN ('CGDD020571','CGDD020157') AND t0.FPURCHASEORGID = 1901189 --AND t0.FID = {0} AND t0e.F_LIUSHUIHAO_TEXT_QTR = '' ) , #流水号拼接 AS ( SELECT t0.FID,t0.FENTRYID,t0.SCode,t0.D,t0.FQTY ,RIGHT('00000' + CONVERT(VARCHAR, (t0.S - t0.FQTY + 1 + t0.InitialValue)), 5) AS 'SSeq' ,RIGHT('00000' + CONVERT(VARCHAR, (S + t0.InitialValue)), 5) AS 'ESeq' FROM #初始数据 t0 ) SELECT *,CONCAT(t0.SCode,t0.D,t0.SSeq,'-',t0.SCode,t0.D,t0.ESeq) FROM #流水号拼接 t0 --UPDATE t0e SET t0e.F_LIUSHUIHAO_TEXT_QTR = CONCAT(t1.SCode,t1.D,t1.SSeq,'-',t1.SCode,t1.D,t1.ESeq) --FROM T_PUR_POORDERENTRY t0e -- INNER JOIN #流水号拼接 t1 on t0e.FENTRYID = t1.FENTRYID