148 lines
6.7 KiB
Transact-SQL
148 lines
6.7 KiB
Transact-SQL
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 '셕뺍땐데데뵀'
|
|
,A.FSALENOROW,A.F_SOURCE_ORDER_LINE_NUMBER as '셕뺍땐데饋簡땐데契뵀'
|
|
,A.F_SOURCE_ORDER_NUMBER as '셕뺍땐데饋簡땐데데뵀'
|
|
,A.F_FORECASTNUMBER as '셕뺍땐데渡꿎데데뵀'
|
|
,A.F_Linenumber as '셕뺍땐데渡꿎데契뵀'
|
|
,E.FBILLNO AS '渡꿎데데뵀'
|
|
,D.FSEQ,D.F_SOURCE_ORDER_NUMBER as '渡꿎데饋簡땐데데뵀'
|
|
,D.F_SOURCE_ORDER_LINE_NUMBER as '渡꿎데饋簡땐데契뵀'
|
|
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
|
|
--셕뺍땐데데뵀
|
|
t.FID
|
|
,渡꿎데데뵀
|
|
,'渡꿎데契뵀'=ISNULL(stuff((select ','+CONVERT(nvarchar(100), FSEQ) from #TEMP1 where 셕뺍땐데데뵀=t.셕뺍땐데데뵀 and 渡꿎데데뵀 = t.渡꿎데데뵀 for xml path('')),1,1,''),'')
|
|
,'饋簡땐데데뵀'=ISNULL(stuff((select distinct ','+CONVERT(nvarchar(100), 渡꿎데饋簡땐데데뵀) from #TEMP1 where 渡꿎데饋簡땐데데뵀<>'' and 셕뺍땐데데뵀=t.셕뺍땐데데뵀 and 渡꿎데데뵀 =t.渡꿎데데뵀 for xml path('')),1,1,''),'')
|
|
,'饋簡땐데契뵀'=ISNULL(stuff((select distinct ','+CONVERT(nvarchar(100), 渡꿎데饋簡땐데契뵀) from #TEMP1 where 渡꿎데饋簡땐데契뵀<>'' and 셕뺍땐데데뵀=t.셕뺍땐데데뵀 and 渡꿎데데뵀 =t.渡꿎데데뵀 for xml path('')),1,1,''),'')
|
|
INTO #TEMP3
|
|
FROM #TEMP1 t
|
|
WHERE t.渡꿎데데뵀 = ''
|
|
GROUP BY t.FID,t.渡꿎데데뵀
|
|
|
|
UPDATE T_PLN_PLANORDER
|
|
SET F_FORECASTNUMBER = B.渡꿎데데뵀
|
|
,F_Linenumber = B.渡꿎데契뵀
|
|
,F_SOURCE_ORDER_LINE_NUMBER = b.饋簡땐데契뵀
|
|
,F_SOURCE_ORDER_NUMBER = b.饋簡땐데데뵀
|
|
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.꿔鑒 IS NULL THEN 땐데뵀 ELSE CONCAT(땐데뵀,'-',꿔鑒) END
|
|
-- from T_PLN_PLANORDER A
|
|
-- inner join
|
|
--(
|
|
--select A.FID, dbo.GetBomSeq( B .FBOMID,a.FMATERIALID) as '꿔鑒', A.FMATERIALID,B.FBOMID,A.f_WAUG_LAYER,A.F_FORECASTNUMBER,A.F_LINENUMBER,
|
|
--A.F_MATERIALCODE,a.FBILLNO as '1',b.FBILLNO as '땐데뵀' 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 |