53 lines
2.6 KiB
SQL
53 lines
2.6 KiB
SQL
CREATE PROCEDURE P_UpdateSubFORECAST
|
|
AS
|
|
BEGIN
|
|
|
|
--更新委外订单委外层数 ,源单类型为委外订单
|
|
UPDATE t0e SET FFORECASTGROUP = ISNULL( cast( t1.FBILLNO as nvarchar(100))+'-'+ cast(dbo.GetBomSeq(t1e.fbomid,t0e.fmaterialid) as nvarchar(100)) ,'')
|
|
--SELECT t2.FNUMBER
|
|
-- ,t0.FBILLNO
|
|
-- ,t0e.FENTRYID
|
|
-- ,t1e.FBOMID,t0e.FMATERIALID
|
|
-- ,CAST( t1.FBILLNO AS NVARCHAR(100)) + '-'+ cast(dbo.GetBomSeq(t1e.fbomid,t0e.fmaterialid) as nvarchar(100)) as 'Bom项次',
|
|
--CONVERT( nvarchar(1000),'') as '上游单据',t0.FBILLNO as '上游生产订单',t1.FBILLNO as '源头生产订单'
|
|
FROM T_SUB_REQORDER t0
|
|
INNER JOIN T_SUB_REQORDERENTRY t0e on t0.FID = t0e.FID
|
|
INNER JOIN T_SUB_REQORDERENTRY_LK t0e_lk on t0e_lk.FENTRYID = t0e.FENTRYID
|
|
INNER JOIN T_SUB_REQORDERENTRY t1e on t1e.FID = t0e_lk.FSBILLID AND t1e.FENTRYID = t0e_lk.FSID
|
|
INNER JOIN T_SUB_REQORDER t1 on t1.FID = t1e.FID
|
|
INNER JOIN T_BD_MATERIAL t2 on t2.FMATERIALID = t0e.FMATERIALID
|
|
WHERE t0e.FFORECASTGROUP = ''
|
|
--已检查
|
|
|
|
--更新委外订单委外层数 ,源单类型为空,证明委外订单为源头
|
|
UPDATE B SET FFORECASTGROUP = A.FBILLNO
|
|
--SELECT D.FSTABLENAME,*
|
|
FROM T_SUB_REQORDER A
|
|
INNER JOIN T_SUB_REQORDERENTRY B ON A.FID=B.FID
|
|
LEFT JOIN T_SUB_REQORDERENTRY_LK D ON D.FENTRYID=B.FENTRYID
|
|
--AND D.FSTABLENAME = 'T_SUB_REQORDER'
|
|
WHERE 1 = 1 AND D.FSID IS NULL AND B.FFORECASTGROUP = ''
|
|
--已检查
|
|
|
|
--更新委外订单委外层数 ,源单类型不为委外订单,层数为源单单号
|
|
UPDATE B SET FFORECASTGROUP = C.FSRCBILLNO
|
|
--SELECT D.FSTABLENAME,*
|
|
FROM T_SUB_REQORDER A
|
|
INNER JOIN T_SUB_REQORDERENTRY B ON A.FID=B.FID
|
|
LEFT JOIN T_SUB_REQORDERENTRY_A C ON C.FENTRYID=B.FENTRYID
|
|
LEFT JOIN T_SUB_REQORDERENTRY_LK D ON D.FENTRYID=B.FENTRYID
|
|
--AND D.FSTABLENAME = 'T_SUB_REQORDER'
|
|
WHERE 1=1 AND D.FSID IS NOT NULL AND B.FFORECASTGROUP = ''
|
|
--已检查
|
|
|
|
--更新委外订单的首层订单号
|
|
UPDATE T_SUB_REQORDERENTRY set FFORECASTGROUPFRIST = CASE WHEN CHARINDEX( '-',REPLACE( FFORECASTGROUP,'_','-') ,0) = 0 THEN FFORECASTGROUP ELSE SUBSTRING(FFORECASTGROUP,0, CHARINDEX( '-',REPLACE( FFORECASTGROUP,'_','-') ,0)) end
|
|
FROM T_SUB_REQORDERENTRY
|
|
WHERE FFORECASTGROUPFRIST= ''
|
|
|
|
--更新委外用料清单的首层订单号
|
|
UPDATE T_SUB_PPBOMENTRY set FFORECASTGROUPFRIST = CASE WHEN CHARINDEX( '-',REPLACE( FFORECASTGROUP,'_','-') ,0) = 0 THEN FFORECASTGROUP ELSE SUBSTRING(FFORECASTGROUP,0, CHARINDEX( '-',REPLACE( FFORECASTGROUP,'_','-') ,0)) end
|
|
FROM T_SUB_PPBOMENTRY
|
|
WHERE FFORECASTGROUPFRIST= ''
|
|
|
|
END |