1
This commit is contained in:
148
07.珠海英搏尔/Enpower/PRD_MO/SQLserver/更新计划订单_预测单信息_存储过程.sql
Normal file
148
07.珠海英搏尔/Enpower/PRD_MO/SQLserver/更新计划订单_预测单信息_存储过程.sql
Normal file
@@ -0,0 +1,148 @@
|
||||
IF EXISTS(SELECT * FROM SYS.PROCEDURES WHERE NAME='PROC_UPDATE_PLAN_BY_PAGE')
|
||||
DROP PROCEDURE dbo.PROC_UPDATE_PLAN_BY_PAGE;
|
||||
GO
|
||||
|
||||
CREATE PROCEDURE PROC_UPDATE_PLAN_BY_PAGE
|
||||
@ListCount int output
|
||||
AS
|
||||
BEGIN
|
||||
SET NOCOUNT ON;
|
||||
SET @ListCount = 0;
|
||||
SELECT
|
||||
TOP 5000
|
||||
A.FID
|
||||
,A.FBILLNO AS '<EFBFBD>ƻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>'
|
||||
,A.FSALENOROW,A.F_SOURCE_ORDER_LINE_NUMBER as '<EFBFBD>ƻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>۶<EFBFBD><EFBFBD><EFBFBD><EFBFBD>к<EFBFBD>'
|
||||
,A.F_SOURCE_ORDER_NUMBER as '<EFBFBD>ƻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>۶<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>'
|
||||
,A.F_FORECASTNUMBER as '<EFBFBD>ƻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ԥ<EFBFBD>ⵥ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>'
|
||||
,A.F_Linenumber as '<EFBFBD>ƻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ԥ<EFBFBD>ⵥ<EFBFBD>к<EFBFBD>'
|
||||
,E.FBILLNO AS 'Ԥ<EFBFBD>ⵥ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>'
|
||||
,D.FSEQ,D.F_SOURCE_ORDER_NUMBER as 'Ԥ<EFBFBD>ⵥ<EFBFBD><EFBFBD><EFBFBD>۶<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>'
|
||||
,D.F_SOURCE_ORDER_LINE_NUMBER as 'Ԥ<EFBFBD>ⵥ<EFBFBD><EFBFBD><EFBFBD>۶<EFBFBD><EFBFBD><EFBFBD><EFBFBD>к<EFBFBD>'
|
||||
INTO #TEMP1
|
||||
FROM T_PLN_PLANORDER A
|
||||
INNER JOIN T_PLN_RESERVELINKENTRY B ON B.FSUPPLYBILLNO = A.FBILLNO
|
||||
INNER JOIN T_PLN_RESERVELINK C ON C.FID=B.FID
|
||||
INNER JOIN T_PLN_FORECASTENTRY D ON D.FENTRYID = C.FSRCENTRYID
|
||||
INNER JOIN T_PLN_FORECAST E ON E .FID=D.FID
|
||||
WHERE A.F_FORECASTNUMBER = ''
|
||||
--AND A.FBILLNO = @FBILLNO
|
||||
--AND A.FBILLNO = 'MRP00260726'
|
||||
|
||||
SELECT FID
|
||||
INTO #BillNoSet
|
||||
FROM #TEMP1
|
||||
GROUP BY FID
|
||||
|
||||
CREATE INDEX [#BillNoSet_INDEX_FID] ON #BillNoSet(FID);
|
||||
|
||||
SELECT @ListCount = count(1) FROM #BillNoSet
|
||||
--SELECT @ListCount
|
||||
IF(@ListCount > 0)
|
||||
BEGIN
|
||||
SELECT
|
||||
--<EFBFBD>ƻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
t.FID
|
||||
,Ԥ<EFBFBD>ⵥ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
,'Ԥ<EFBFBD>ⵥ<EFBFBD>к<EFBFBD>'=ISNULL(stuff((select ','+CONVERT(nvarchar(100), FSEQ) from #TEMP1 where <20>ƻ<EFBFBD><C6BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>=t.<2E>ƻ<EFBFBD><C6BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> and Ԥ<>ⵥ<EFBFBD><E2B5A5><EFBFBD><EFBFBD> = t.Ԥ<>ⵥ<EFBFBD><E2B5A5><EFBFBD><EFBFBD> for xml path('')),1,1,''),'')
|
||||
,'<EFBFBD><EFBFBD><EFBFBD>۶<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>'=ISNULL(stuff((select distinct ','+CONVERT(nvarchar(100), Ԥ<EFBFBD>ⵥ<EFBFBD><EFBFBD><EFBFBD>۶<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>) from #TEMP1 where Ԥ<>ⵥ<EFBFBD><E2B5A5><EFBFBD>۶<EFBFBD><DBB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><>'' and <20>ƻ<EFBFBD><C6BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>=t.<2E>ƻ<EFBFBD><C6BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> and Ԥ<>ⵥ<EFBFBD><E2B5A5><EFBFBD><EFBFBD> =t.Ԥ<>ⵥ<EFBFBD><E2B5A5><EFBFBD><EFBFBD> for xml path('')),1,1,''),'')
|
||||
,'<EFBFBD><EFBFBD><EFBFBD>۶<EFBFBD><EFBFBD><EFBFBD><EFBFBD>к<EFBFBD>'=ISNULL(stuff((select distinct ','+CONVERT(nvarchar(100), Ԥ<EFBFBD>ⵥ<EFBFBD><EFBFBD><EFBFBD>۶<EFBFBD><EFBFBD><EFBFBD><EFBFBD>к<EFBFBD>) from #TEMP1 where Ԥ<>ⵥ<EFBFBD><E2B5A5><EFBFBD>۶<EFBFBD><DBB6><EFBFBD><EFBFBD>к<EFBFBD><>'' and <20>ƻ<EFBFBD><C6BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>=t.<2E>ƻ<EFBFBD><C6BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> and Ԥ<>ⵥ<EFBFBD><E2B5A5><EFBFBD><EFBFBD> =t.Ԥ<>ⵥ<EFBFBD><E2B5A5><EFBFBD><EFBFBD> for xml path('')),1,1,''),'')
|
||||
INTO #TEMP3
|
||||
FROM #TEMP1 t
|
||||
WHERE t.Ԥ<EFBFBD>ⵥ<EFBFBD><EFBFBD><EFBFBD><EFBFBD> = ''
|
||||
GROUP BY t.FID,t.Ԥ<EFBFBD>ⵥ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
UPDATE T_PLN_PLANORDER
|
||||
SET F_FORECASTNUMBER = B.Ԥ<EFBFBD>ⵥ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
,F_Linenumber = B.Ԥ<EFBFBD>ⵥ<EFBFBD>к<EFBFBD>
|
||||
,F_SOURCE_ORDER_LINE_NUMBER = b.<EFBFBD><EFBFBD><EFBFBD>۶<EFBFBD><EFBFBD><EFBFBD><EFBFBD>к<EFBFBD>
|
||||
,F_SOURCE_ORDER_NUMBER = b.<EFBFBD><EFBFBD><EFBFBD>۶<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
FROM
|
||||
T_PLN_PLANORDER A
|
||||
INNER JOIN #BillNoSet tt ON tt.FID = A.FID
|
||||
INNER JOIN #TEMP3 B ON A.FID=B.FID
|
||||
--inner join #temp2 f on f.fname = a.FBILLNO
|
||||
|
||||
--DROP TABLE #TEMP1
|
||||
DROP TABLE #temp3
|
||||
|
||||
UPDATE A SET
|
||||
A.F_CUSTOMERNAME = D.FCUSTID
|
||||
,A.F_MATERIALCODE = D.FMATERIALID
|
||||
from
|
||||
T_PLN_PLANORDER A
|
||||
INNER JOIN #BillNoSet tt ON tt.FID = A.FID
|
||||
INNER JOIN T_PLN_RESERVELINKENTRY B ON B.FSUPPLYBILLNO = A.FBILLNO
|
||||
INNER JOIN T_PLN_RESERVELINK C ON C.FID=B.FID
|
||||
INNER JOIN T_PLN_FORECASTENTRY D ON D.FENTRYID=C.FSRCENTRYID
|
||||
INNER JOIN T_PLN_FORECAST e on e.fid=d.FID
|
||||
--inner join #temp2 f on f.fname = a.FBILLNO
|
||||
--where (a.F_CUSTOMERNAME=0 or a.F_MATERIALCODE=0 )
|
||||
--AND A.FBILLNO = @FBILLNO
|
||||
|
||||
UPDATE A
|
||||
SET F_CUSTOMERNAME = D.FCUSTID
|
||||
,F_MATERIALCODE = D.FMATERIALID
|
||||
,F_FORECASTNUMBER = C.FBILLNO
|
||||
,F_LINENUMBER = D.FSEQ
|
||||
,F_SOURCE_ORDER_LINE_NUMBER = D.F_SOURCE_ORDER_LINE_NUMBER
|
||||
,F_SOURCE_ORDER_NUMBER = D.F_SOURCE_ORDER_NUMBER
|
||||
FROM
|
||||
T_PLN_PLANORDER A
|
||||
INNER JOIN #BillNoSet tt ON tt.FID = A.FID
|
||||
INNER JOIN T_PLN_PLANORDER_B B ON A.FID=B.FID
|
||||
INNER JOIN T_PLN_FORECAST C ON C .FBILLNO = B.FSALEORDERNO
|
||||
INNER JOIN T_PLN_FORECASTENTRY D ON D .FID= C.FID AND D.FSEQ=B.FSALEORDERENTRYSEQ
|
||||
--INNER JOIN #temp2 e ON A.FBILLNO = e.Fname
|
||||
--WHERE A.FBILLNO = 'MRP00640407'
|
||||
|
||||
--UPDATE A SET A.F_Remark=ISNULL( dbo.GetForecast(A.F_FORECASTNUMBER ,A.F_LINENUMBER),'')
|
||||
--from T_PLN_PLANORDER A
|
||||
--INNER JOIN T_PLN_FORECAST B ON B.FBILLNO=A.F_FORECASTNUMBER
|
||||
--INNER JOIN T_PLN_FORECAST_L C ON C.FID=B.FID
|
||||
--INNER JOIN T_PLN_FORECASTENTRY D on D.FID=B.FID AND D.FSEQ=A.F_Linenumber
|
||||
--where ( a.F_Remark='' )
|
||||
|
||||
UPDATE E SET F_DESCRIPTION = ISNULL(C.FDESCRIPTION ,'' )
|
||||
from T_PLN_PLANORDER A
|
||||
INNER JOIN #BillNoSet tt ON tt.FID = A.FID
|
||||
INNER JOIN T_PLN_PLANORDER_L E ON E.FID=A.FID
|
||||
INNER JOIN T_PLN_FORECAST B ON B.FBILLNO=A.F_FORECASTNUMBER
|
||||
INNER JOIN T_PLN_FORECAST_L C ON C.FID = B.FID
|
||||
|
||||
--inner join #temp2 f on f.fname = a.FBILLNO
|
||||
--where ( e.F_DESCRIPTION='' )
|
||||
--AND A.FBILLNO = @FBILLNO
|
||||
|
||||
UPDATE T_PLN_PLANORDER
|
||||
SET F_REMARK = ISNULL( DBO.GETFORECAST(A.F_FORECASTNUMBER ,A.F_LINENUMBER),'')
|
||||
FROM T_PLN_PLANORDER A
|
||||
INNER JOIN #BillNoSet tt ON tt.FID = A.FID
|
||||
--inner join #temp2 f on f.fname = a.FBILLNO
|
||||
WHERE 1=1
|
||||
--and ( a.F_Remark='' )
|
||||
--AND CONVERT(nvarchar(100),a.FCREATEDATE,23) = CONVERT(nvarchar(100),GETDATE(),23)
|
||||
AND CONVERT(nvarchar(100),a.FCREATEDATE,23) = CONVERT(nvarchar(100),'2024-01-17',23)
|
||||
--AND A.FBILLNO = @FBILLNO
|
||||
|
||||
--UPDATE T_PLN_PLANORDER SET F_WAUG_LAYER =
|
||||
--CASE WHEN B.<EFBFBD><EFBFBD><EFBFBD><EFBFBD> IS NULL THEN <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ELSE CONCAT(<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,'-',<EFBFBD><EFBFBD><EFBFBD><EFBFBD>) END
|
||||
-- from T_PLN_PLANORDER A
|
||||
-- inner join
|
||||
--(
|
||||
--select A.FID, dbo.GetBomSeq( B .FBOMID,a.FMATERIALID) as '<EFBFBD><EFBFBD><EFBFBD><EFBFBD>', A.FMATERIALID,B.FBOMID,A.f_WAUG_LAYER,A.F_FORECASTNUMBER,A.F_LINENUMBER,
|
||||
--A.F_MATERIALCODE,a.FBILLNO as '1',b.FBILLNO as '<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>' from T_PLN_PLANORDER A
|
||||
--INNER JOIN T_PLN_PLANORDER B ON A.F_FORECASTNUMBER=B.F_FORECASTNUMBER AND A.F_LINENUMBER=B.F_LINENUMBER AND A.F_MATERIALCODE =B.FMATERIALID
|
||||
--INNER JOIN #temp2 C ON C.Fname=A.FBILLNO
|
||||
----WHERE a.F_WAUG_LAYER = ''
|
||||
|
||||
--) B ON A.FID = B.FID
|
||||
|
||||
--DROP TABLE #temp2
|
||||
END
|
||||
|
||||
DROP TABLE #TEMP1
|
||||
DROP TABLE #BillNoSet
|
||||
|
||||
SET NOCOUNT OFF
|
||||
END
|
||||
Reference in New Issue
Block a user