Files
GateDge2023_ljy/07.珠海英搏尔/Enpower.Database/生产订单BOM.sql
PastSaid 08d8878eef a
2024-03-11 14:47:23 +08:00

49 lines
2.1 KiB
SQL
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/*计划订单一旦投放T_PLN_RESERVELINKENTRY里计划订单将转移到生产订单 */
SELECT
t0e.FID
,t0.FBILLNO
,t0e.FENTRYID
,t0e.FMATERIALID
,t0e.FBomId MOBomId
,t1.FSRCFORMID '顶级需求来源类型'
,t1.FSRCBILLNO '顶级需求来源单号'
,t1.FSRCINTERID /*顶级需求来源单内码*/
,t1.FSRCENTRYID /*顶级需求来源分录号*/ ---来源于同一预测单同一行的这两个值一定相同
,t2e.FSEQ
,t2e.FBomId /*可以用预测订单的FBomId取匹配BOM多级展开的首层号*/
,t2e.FMATERIALID OMATERAILID
,'' BOMLevel
/*放入一个临时表,待用*/
--INTO #_MO
FROM T_PRD_MO t0 --生产订单表头
INNER JOIN T_PRD_MOENTRY t0e ON t0e.FID=t0.FID --生产订单表体
INNER JOIN T_PLN_RESERVELINKENTRY t1e ON t1e.FINTSUPPLYID=t0e.FID AND t1e.FINTSUPPLYENTRYID=t0e.FENTRYID--预留表表体
INNER JOIN T_PLN_RESERVELINK t1 ON t1.FID=t1e.FID AND t1.FSRCFORMID='PLN_FORECAST'--预留表表头
INNER JOIN T_PLN_FORECASTENTRY t2e ON t2e.FID=t1.FSRCINTERID AND t2e.FENTRYID=t1.FSRCENTRYID--预测单表体
WHERE 1 = 1
--t0.FBILLNO='WO2401100002' /*测试生产订单*/
AND t0e.FFORECASTGROUP='' /*层数为空*/
AND t0e.FSRCBILLTYPE='PLN_PLANORDER' /*确保是通过MRP运算下推的单据*/
--CREATE INDEX [#PLid] ON #_MO (FSRCINTERID ASC,FSRCENTRYID ASC) /*找相同组别可用*/
--CREATE INDEX [#BomId] ON #_MO (FBomId ASC) /*BOM多级展开以及更新首层号可用*/
--SELECT FSRCINTERID,FSRCENTRYID,MO2.FBILLNO AS '首层生产订单的层号'
--into #n_mo
--FROM #_MO MO INNER JOIN T_PRD_MOENTRY MO1 ON MO1.FID=MO.FID AND MO1.FENTRYID=MO.FENTRYID
--INNER JOIN T_PRD_MO MO2 ON MO2.FID=MO.FID
--CREATE INDEX [#n_mo] ON #n_mo (FSRCINTERID ASC,FSRCENTRYID ASC) /*找相同组别可用*/
----update mo set BOMLevel=nmo.首层生产订单的层号+'-'+'表值函数里的层号'
----from #_MO mo left join #n_mo nmo on nmo.FSRCINTERID=mo.FSRCINTERID and nmo.FSRCENTRYID=mo.FSRCENTRYID
--/*-------------将dbo.GetBomSeq改为表值函数或存储过程返回包含下列字段的表-----------------
-- 顶级BOM_ID(对应#_MO中的FBomId)
-- 子BOM_ID(对应#_MO中的MOBomId)
-- 层号
----------------将dbo.GetBomSeq改为表值函数或存储过程返回包含下列字段的表------------------*/
----select dbo.GetBomSeq(7293846,3994919)
--select * from #_MO
--DROP TABLE #_MO
--DROP TABLE #n_mo