Files
GateDge2023_ljy/07.珠海英搏尔/GZ.LJY000.Enpower/预测单/专用料判断报表_202501241649.sql

100 lines
3.9 KiB
MySQL
Raw Normal View History

2025-02-10 09:24:44 +08:00
;WITH #<23><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> AS (
SELECT t0e.FENUMID,t0e.FSEQ,t0e.FVALUE,t0e_l.FCAPTION
FROM T_META_FORMENUMITEM t0e
INNER JOIN T_META_FORMENUMITEM_L t0e_l on t0e.FENUMID = t0e_l.FENUMID AND t0e_l.FLOCALEID = 2052
WHERE 1 = 1
AND t0e.FID = 'ac14913e-bd72-416d-a50b-2c7432bbff63'
)
,#BOMչ<4D><D5B9> AS (
SELECT TOP 1 t0.FID,t0.FMATERIALID,t0.FNUMBER,t0.FUNITID ,0 lv
,ROW_NUMBER() OVER (PARTITION BY t0.FMATERIALID ORDER BY t0.FNUMBER DESC) RN
,CAST('1' AS nvarchar(100)) MPath
,CAST('' AS nvarchar(100)) PBomNumber
,CAST(1 AS decimal(23,10)) <EFBFBD><EFBFBD>׼<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
--,0 RN
FROM T_ENG_BOM t0
INNER JOIN T_BD_MATERIAL t1 on t1.FMATERIALID = t0.FMATERIALID
WHERE 1 = 1
--AND t0.FMATERIALID = 9554131
AND t1.FNUMBER = '97.03.0097'
AND t0.FDOCUMENTSTATUS = 'C'
AND t0.FFORBIDSTATUS = 'A'
AND t0.FUSEORGID = 1
ORDER BY t0.FNUMBER DESC
UNION ALL
SELECT ISNULL(t1.FID,0),t0e.FMATERIALID,ISNULL(t1.FNUMBER, ''),t0e.FUNITID,1 + t0.lv
,ROW_NUMBER() OVER (ORDER BY t0.RN DESC,t0e.FSEQ)
,CAST(CONCAT(t0.MPath,'.',ROW_NUMBER() OVER (ORDER BY t0.RN DESC,t0e.FSEQ)) AS nvarchar(100))
,CAST(t0.FNUMBER AS nvarchar(100))
,CAST(t0e.FNUMERATOR /t0e.FDENOMINATOR * t0.<EFBFBD><EFBFBD>׼<EFBFBD><EFBFBD><EFBFBD><EFBFBD> AS decimal(23,10))
FROM #BOMչ<4D><D5B9> t0
INNER JOIN T_ENG_BOMCHILD t0e on t0e.FID = t0.FID AND t0e.FMATERIALTYPE != 3
OUTER APPLY (
SELECT t1.FID,t1.FMASTERID,t1.FMATERIALID,t1.FNUMBER,t1.FUNITID
,ROW_NUMBER() OVER (PARTITION BY t1.FMATERIALID ORDER BY t1.FNUMBER DESC) RN
FROM T_ENG_BOM t1
WHERE t1.FMATERIALID = t0e.FMATERIALID
AND t1.FDOCUMENTSTATUS = 'C'
AND t1.FFORBIDSTATUS = 'A'
AND t1.FUSEORGID = 1
) t1
WHERE (t1.RN = 1 OR t1.RN IS NULL) AND t0.FNUMBER != ''
--AND t0.lv < 2
)
SELECT t0.RN,t0.MPath,t1.FNUMBER '<EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD><EFBFBD><EFBFBD>',t1_l.FNAME '<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>',t1_l.FSPECIFICATION '<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͺ<EFBFBD>',t2.FCAPTION '<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>','' '<EFBFBD><EFBFBD>Ӧ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>',t0.FNUMBER 'BOM<EFBFBD>'
,t3_l.FNAME '<EFBFBD><EFBFBD>λ',t0.<EFBFBD><EFBFBD>׼<EFBFBD><EFBFBD><EFBFBD><EFBFBD>,CAST('' AS nvarchar(4)) 'ר<EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD>ʶ','' 'L/T'
,0 <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,0 Ԥ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,0 δ<EFBFBD><EFBFBD>PR<EFBFBD><EFBFBD>,0 <EFBFBD>ѷ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,0 <EFBFBD>ƻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,'' <EFBFBD>ƻ<EFBFBD>Ա,'' <EFBFBD>ɹ<EFBFBD>Ա
,t0.FMATERIALID,t0.lv
INTO #BOM
FROM #BOMչ<4D><D5B9> t0
INNER JOIN T_BD_MATERIAL t1 on t1.FMATERIALID = t0.FMATERIALID
INNER JOIN T_BD_MATERIAL_L t1_l on t1_l.FMATERIALID = t1.FMATERIALID AND t1_l.FLOCALEID = 2052
INNER JOIN T_BD_MATERIALBASE t1b on t1b.FMATERIALID = t1.FMATERIALID
INNER JOIN T_BD_MATERIALPLAN t1p on t1p.FMATERIALID = t1.FMATERIALID
INNER JOIN #<23><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> t2 on t2.FVALUE = t1b.FERPCLSID
INNER JOIN T_BD_UNIT_L t3_l on t3_l.FUNITID = t0.FUNITID AND t3_l.FLOCALEID = 2052
WHERE 1 = 1
--AND t0.lv < 2
ORDER BY CAST(CONCAT('/',REPLACE(t0.MPath,'.','/'),'/') AS HIERARCHYID)
--SELECT *
--FROM #BOM t0
;WITH #<23><><EFBFBD>Ϸ<EFBFBD><CFB7><EFBFBD> AS (
SELECT t0.FMATERIALID,t1.FMATERIALGROUP,t0e.FMATERIALID 'srcMaterialId'--,t0e.FID,t0.FNUMBER
,0 lv,CAST(CONCAT(t0.FMATERIALID,'_',t0e.FMATERIALID,'_') AS nvarchar(2000)) aPath
FROM (
SELECT tt.FMATERIALID
FROM #BOM tt
WHERE 1=1 AND tt.lv > 0
GROUP BY tt.FMATERIALID
) tt
INNER JOIN T_ENG_BOMCHILD t0e on t0e.FMATERIALID = tt.FMATERIALID
INNER JOIN T_ENG_BOM t0 on t0.FID = t0e.FID
INNER JOIN T_BD_MATERIAL t1 on t1.FMATERIALID = t0.FMATERIALID
WHERE 1=1
GROUP BY t0.FMATERIALID,t1.FMATERIALGROUP,t0e.FMATERIALID
UNION ALL
SELECT t1.FMATERIALID,t1.FMATERIALGROUP,tt.srcMaterialId--,t0e.FID,t0.FNUMBER
,tt.lv + 1,CAST(CONCAT(t1.FMATERIALID,'_',tt.aPath) AS nvarchar(2000))
FROM #<23><><EFBFBD>Ϸ<EFBFBD><CFB7><EFBFBD> tt
CROSS APPLY (
SELECT t0.FMATERIALID,t1.FMATERIALGROUP,t0e.FMATERIALID 'srcMaterialId'
,ROW_NUMBER() OVER (PARTITION BY t0.FMATERIALID ORDER BY t0.FNUMBER DESC) RN
FROM T_ENG_BOMCHILD t0e
INNER JOIN T_ENG_BOM t0 on t0.FID = t0e.FID
INNER JOIN T_BD_MATERIAL t1 on t1.FMATERIALID = t0.FMATERIALID
WHERE 1 = 1
AND tt.FMATERIALID = t0e.FMATERIALID
) t1
WHERE t1.RN = 1
)
SELECT *
FROM #<23><><EFBFBD>Ϸ<EFBFBD><CFB7><EFBFBD> t0
INNER JOIN T_BD_MATERIALGROUPLEVEL t1 on t0.FMATERIALGROUP = t1.FID
INNER JOIN T_BD_MATERIALGROUP t2 on t2.FID = t1.FGROUP1
WHERE t2.FNUMBER = '1'
ORDER BY lv desc,srcMaterialId DESC
DROP TABLE #BOM