Files
GateDge2023_ljy/07.珠海英搏尔/Enpower.Python/产品成本还原报表V4.0.sql

386 lines
15 KiB
MySQL
Raw Normal View History

2024-07-16 10:33:50 +08:00
declare @billNo varchar(100),@materialNumber varchar(100)
SET @billNo = ''
--SET @billNo = 'RO2405090020'
--SET @billNo = 'TO2405210015'
--SET @billNo = 'WO2405160002'
--SET @billNo = 'WO2405080005'
--SET @billNo = 'TO2404290033'
--SET @billNo = 'TO2403250007'
--SET @billNo = 'WO2403210039'
SET @materialNumber = ''
--SET @materialNumber = '03.70.0143'
;WITH #SelectMo AS (
SELECT t0.FBILLNO,t0.FID,t0e.FENTRYID,t0e.FMATERIALID AS TopMaterialId,t0e.FMATERIALID
,t0.FFORMID AS 'FFORMID'
,t0e_a.FSTOCKINQUASELAUXQTY AS '<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>',t0e_a.FSTATUS
FROM T_PRD_MO t0
INNER JOIN T_PRD_MOENTRY t0e on t0.FID = t0e.FID
INNER JOIN T_PRD_MOENTRY_A t0e_a on t0e.FENTRYID = t0e_a.FENTRYID
WHERE 1 = 1
--AND t0.FBILLNO = @billNo
UNION
SELECT t0.FBILLNO,t0.FID,t0e.FENTRYID,t0e.FMATERIALID AS TopMaterialId,t0e.FMATERIALID
,t0.FFORMID AS 'FFORMID',t0e_a.FSTOCKINQUASELAUXQTY AS '<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>'
,t0e_a.FSTATUS
FROM T_PRD_MO t0
INNER JOIN T_PRD_MOENTRY t0e on t0.FID = t0e.FID
INNER JOIN T_PRD_MOENTRY_A t0e_a on t0e.FENTRYID = t0e_a.FENTRYID
INNER JOIN T_BD_MATERIAL t1 on t1.FMATERIALID = t0e.FMATERIALID
WHERE 1 = 1
AND t1.FNUMBER = @materialNumber
)
,#TopMo AS (
SELECT t0.*
,CONVERT(varchar(1000),ROW_NUMBER() OVER (ORDER BY t0.FID,t0.FMATERIALID)) AS 'aPATH'
,0 AS 'FLOT',CAST('' AS nvarchar(255)) AS 'FLOT_TEXT',CONVERT(decimal(23,10), 0) AS 'FAMOUNT',0 'lv'
FROM #SelectMo t0
)
,#<23><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵ<EFBFBD> AS (
SELECT t1e.FLOT,t1e.FLOT_TEXT,t1e.FMATERIALID,'PRD_MO' AS 'FFORMID'
,SUM(t1e.FAMOUNT) AS 'FAMOUNT',t1e.FMOENTRYID,t1e.FMOBILLNO
FROM T_PRD_PICKMTRL t1
INNER JOIN T_PRD_PICKMTRLDATA t1e on t1.FID = t1e.FID
WHERE t1.FDOCUMENTSTATUS = 'C'
GROUP BY t1e.FLOT,t1e.FLOT_TEXT,t1e.FMATERIALID,t1e.FMOENTRYID,t1e.FMOBILLNO
)
, #<23><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵ<EFBFBD> AS (
SELECT t0e.FMOENTRYID,t0e.FMATERIALID,t0e.FLOT,SUM(t0e.FAMOUNT) AS 'FAMOUNT','PRD_MO' AS 'FFORMID'
FROM T_PRD_FEEDMTRL t0
INNER JOIN T_PRD_FEEDMTRLDATA t0e on t0.FID = t0e.FID
WHERE t0.FDOCUMENTSTATUS = 'C'
GROUP BY t0e.FMOID,t0e.FMOENTRYID,t0e.FMATERIALID,t0e.FLOT
)
, #<23><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵ<EFBFBD> AS (
SELECT t0e.FMOENTRYID,t0e.FMATERIALID,t0e.FLOT,SUM(t0e.FAMOUNT) AS 'FAMOUNT','PRD_MO' AS 'FFORMID'
FROM T_PRD_RETURNMTRL t0
INNER JOIN T_PRD_RETURNMTRLENTRY t0e on t0.FID = t0e.FID
WHERE t0.FDOCUMENTSTATUS = 'C'
GROUP BY t0e.FMOID,t0e.FMOENTRYID,t0e.FMATERIALID,t0e.FLOT
)
,<><CEAF><EFBFBD><EFBFBD><EFBFBD>ϵ<EFBFBD> AS (
SELECT t1e.FLOT,t1e.FLOT_TEXT,t1e.FMATERIALID,'SUB_SUBREQORDER' AS 'FFORMID'
,SUM(ISNULL(t1e_a.FAMOUNT,0)) FAMOUNT,t1e.FSUBREQENTRYID AS FMOENTRYID
FROM T_SUB_PICKMTRL t1
INNER JOIN T_SUB_PICKMTRLDATA t1e on t1.FID = t1e.FID
INNER JOIN T_SUB_PICKMTRLDATA_A t1e_a on t1e.FENTRYID = t1e_a.FENTRYID
WHERE t1.FDOCUMENTSTATUS = 'C'
GROUP BY t1e.FLOT,t1e.FLOT_TEXT,t1e.FMATERIALID,t1e.FSUBREQENTRYID
)
, <><EFBFBD>ϵ<EFBFBD> AS (
SELECT t0e.FSUBREQENTRYID AS FMOENTRYID,t0e.FMATERIALID,t0e.FLOT,SUM(t0e.FAMOUNT) AS 'FAMOUNT','SUB_SUBREQORDER' AS 'FFORMID'
FROM T_SUB_FEEDMTRL t0
INNER JOIN T_SUB_FEEDMTRLENTRY t0e on t0.FID = t0e.FID
WHERE t0.FDOCUMENTSTATUS = 'C'
GROUP BY t0e.FLOT,t0e.FMATERIALID,t0e.FSUBREQENTRYID
)
, <><CEAF><EFBFBD><EFBFBD><EFBFBD>ϵ<EFBFBD> AS (
SELECT t0e_a.FSUBREQENTRYID AS FMOENTRYID,t0e.FMATERIALID,t0e.FLOT,SUM(t0e.FAMOUNT) AS 'FAMOUNT','SUB_SUBREQORDER' AS 'FFORMID'
FROM T_SUB_RETURNMTRL t0
INNER JOIN T_SUB_RETURNMTRLENTRY t0e on t0.FID = t0e.FID
INNER JOIN T_SUB_RETURNMTRLENTRY_A t0e_a on t0e.FENTRYID = t0e_a.FENTRYID
WHERE t0.FDOCUMENTSTATUS = 'C'
GROUP BY t0e.FLOT,t0e.FMATERIALID,t0e_a.FSUBREQENTRYID
)
, #<23><><EFBFBD>ݲ<EFBFBD><DDB2><EFBFBD> AS (
SELECT t0.FMATERIALID AS 'TopMaterialId'
,t0.FMATERIALID AS 'MoMaterialId'
,t1e.FMATERIALID
,t1e.FLOT
,t1e.FLOT_TEXT
,t1e.FAMOUNT
,CONVERT(decimal(23,10),0) AS '<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>'
,0 AS 'FSTATUS'
,CONVERT(varchar(1000),CONCAT(t0.aPATH,'.',ROW_NUMBER() OVER (PARTITION BY t0.FID,t0.FENTRYID ORDER BY t1e.FMATERIALID))) AS 'aPATH'
,t0.aPATH AS 'PPATH'
,t0.lv + 1 lv
,t0.FFORMID
,t1e.MoId AS 'MoId'
,t1e.MoEntryId AS 'MoEntryId'
,t1e.MoBillNo AS 'MoBillNo'
,t0.FID AS 'PMoId'
,t0.FENTRYID AS 'PMoEntryId'
,t0.FBILLNO AS 'PMoBillNo'
,0 AS 'isTrue'
,CONVERT(varchar(100),'') PID
FROM #TopMo t0
CROSS APPLY (
SELECT t1e.FLOT,t1e.FLOT_TEXT,t1e.FMATERIALID,SUM(t1e.FAMOUNT) AS 'FAMOUNT'
,ISNULL(t2.FID,0) AS 'MoId',ISNULL(t2e.FENTRYID,0) AS 'MoEntryId',ISNULL(t2.FBILLNO,'') AS 'MoBillNo'
FROM T_PRD_PICKMTRLDATA t1e
LEFT JOIN T_PRD_MO t2 on t2.FBILLNO = t1e.FLOT_TEXT
LEFT JOIN T_PRD_MOENTRY t2e on t2e.FID = t2.FID
WHERE t1e.FMOENTRYID = t0.FENTRYID
GROUP BY t1e.FLOT,t1e.FLOT_TEXT,t1e.FMATERIALID,t2.FID,t2e.FENTRYID,t2.FBILLNO
) t1e
UNION ALL
SELECT tt.TopMaterialId
,ISNULL(t0.MoMaterialId,'')
,t0.FMATERIALID
,t0.FLOT
,t0.FLOT_TEXT
,t0.FAMOUNT
,ISNULL(t0.<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,0) AS '<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>'
,t0.FSTATUS
,CONVERT(varchar(1000),CONCAT(tt.aPATH,'.',ROW_NUMBER() OVER (PARTITION BY tt.MoId,tt.MoEntryId ORDER BY t0.FMATERIALID))) AS 'aPATH'
,tt.aPATH
,tt.lv + 1 lv
,ISNULL(t0.FFORMID,'')
,ISNULL(t0.FID,0) AS 'MoId'
,ISNULL(t0.FENTRYID,0) AS 'MoEntryId'
,ISNULL(t0.FBILLNO,'') AS 'MoBillNo'
,tt.MoId AS 'PMoId'
,tt.MoEntryId AS 'PMoEntryId'
,tt.MoBillNo AS 'PMoEntryId'
,CASE WHEN t0.FBILLNO = tt.MoBillNo THEN 1 ELSE 0 END AS 'isTrue'
,CAST(CAST(CONCAT('/',REPLACE(tt.aPATH,'.','/'),'/') AS HIERARCHYID) AS varchar(100))
FROM #<23><><EFBFBD>ݲ<EFBFBD><DDB2><EFBFBD> tt
CROSS APPLY (
SELECT t0.FID,t0.FBILLNO,t0e.FENTRYID,t0e.FMATERIALID AS MoMaterialId,t0e.FBOMID
,CONVERT(decimal(23,10),0) AS '<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>'
,0 AS 'FSTATUS'
,t1.FLOT,t1.FLOT_TEXT,t1.FMATERIALID,t1.FAMOUNT,t1.FMOENTRYID,CONVERT(varchar(36),t1.FFORMID) AS 'FFORMID'
FROM #<23><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵ<EFBFBD> t1
LEFT JOIN T_PRD_MO t0 on t0.FBILLNO = t1.FLOT_TEXT
LEFT JOIN T_PRD_MOENTRY t0e on t0.FID = t0e.FID
WHERE t1.FMOENTRYID = tt.MoEntryId
AND tt.FFORMID = t1.FFORMID
UNION ALL
SELECT t0.FID,t0.FBILLNO,t0e.FENTRYID,t0e.FMATERIALID AS MoMaterialId,t0e.FBOMID
,t0e.FSTOCKINQTY,t0e.FSTATUS
,t1.FLOT,t1.FLOT_TEXT,t1.FMATERIALID,t1.FAMOUNT,t1.FMOENTRYID,CONVERT(varchar(36),t1.FFORMID) AS 'FFORMID'
FROM <><CEAF><EFBFBD><EFBFBD><EFBFBD>ϵ<EFBFBD> t1
INNER JOIN T_SUB_REQORDER t0 on t0.FBILLNO = t1.FLOT_TEXT
INNER JOIN T_SUB_REQORDERENTRY t0e on t0.FID = t0e.FID
WHERE t1.FMOENTRYID = tt.MoEntryId
AND tt.FFORMID = t1.FFORMID
) t0
WHERE 1=1
AND tt.isTrue = 0
)
, #<23><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> AS (
SELECT FID AS 'MoId',FENTRYID AS 'MoEntryId',FBILLNO AS 'MoBillNo'
,0 AS 'PMoId'
,0 AS 'PMoEntryId'
,FBILLNO AS 'PMoBillNo'
,TopMaterialId,TopMaterialId AS 'MoMaterialId',FMATERIALID,FLOT,FLOT_TEXT,FAMOUNT
,<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,FSTATUS,aPATH,'0' AS 'PPATH',lv,FFORMID
FROM #TopMo
UNION ALL
SELECT MoId,MoEntryId,MoBillNo,PMoId,PMoEntryId,PMoBillNo
,TopMaterialId,MoMaterialId,FMATERIALID,FLOT,FLOT_TEXT,FAMOUNT,<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,FSTATUS,aPATH,PPATH,lv,FFORMID
FROM #<23><><EFBFBD>ݲ<EFBFBD><DDB2><EFBFBD>
)
, <>ʹ<EFBFBD>ʱ<EFBFBD>鼯 AS (
SELECT t0e.FPROORDERNO,t0e.FPROORDERENTRYID,FCOSTCENTERID
,SUM(t0e.FHRWORKTIME) AS '<EFBFBD><EFBFBD>Աʵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ',SUM(t0e.FRPTQTY) AS '<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>'
,SUM(t2e.FHRWORKTIME) FHRWORKTIME,SUM(t2e.FFINISHQTY) FFINISHQTY
FROM T_CB_WORKHOURSENTRY t0e
INNER JOIN T_PRD_MORPTENTRY t2e on t2e.FENTRYID = t0e.FSRCENTRYID
WHERE t0e.FSRCBILLFORMID = 'PRD_MORPT'
GROUP BY t0e.FPROORDERNO,t0e.FPROORDERENTRYID,FCOSTCENTERID
)
,#<23><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ AS (
SELECT t2.FNAME
--,t0_L.FNAME
,ISNULL(t0.FEXPID,0) AS 'FEXPID'
,t2.fieldName
FROM T_BD_EXPENSE t0
INNER JOIN T_BD_EXPENSE_L t0_L on t0.FEXPID = t0_L.FEXPID AND t0_L.FLOCALEID = 2052
RIGHT JOIN (
SELECT 'o1' AS 'fieldName','ֱ<EFBFBD><EFBFBD><EFBFBD>˹<EFBFBD>' AS 'FNAME'
UNION ALL SELECT 'o2', 'ְ<EFBFBD><EFBFBD>н<EFBFBD><EFBFBD>'
UNION ALL SELECT 'o3', '<EFBFBD>ɷ<EFBFBD>֧<EFBFBD><EFBFBD>'
UNION ALL SELECT 'o4', '<EFBFBD>Ͷ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>'
UNION ALL SELECT 'o5', '<EFBFBD><EFBFBD><EFBFBD>÷<EFBFBD>'
UNION ALL SELECT 'o6', 'ҵ<EFBFBD><EFBFBD><EFBFBD>д<EFBFBD><EFBFBD><EFBFBD>'
UNION ALL SELECT 'o7', '<EFBFBD><EFBFBD><EFBFBD>'
UNION ALL SELECT 'o8', '<EFBFBD>۾<EFBFBD><EFBFBD><EFBFBD>̯<EFBFBD><EFBFBD>'
UNION ALL SELECT 'o9', '<EFBFBD><EFBFBD><EFBFBD>޷<EFBFBD>'
UNION ALL SELECT 'o10', 'ˮ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>'
UNION ALL SELECT 'o11', '<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>'
UNION ALL SELECT 'o12', '<EFBFBD>ӹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>'
UNION ALL SELECT 'o13', '<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD>÷<EFBFBD>'
UNION ALL SELECT 'o14', '<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>-<2D><><EFBFBD><EFBFBD>'
) t2 on CHARINDEX(t2.FNAME ,t0_L.FNAME) > 0
)
, #<23><><EFBFBD>÷<EFBFBD><C3B7><EFBFBD><EFBFBD><EFBFBD>ϸ AS (
SELECT
t0.aPATH
,SUM(t2.FAMOUNT) famount
--,t4_l.FNAME AS '<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ'
,t4_l.fieldName AS '<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ'
,' ' fsourcebilltypename
FROM #<23><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> t0
INNER JOIN T_CB_PROORDERDIME t1 ON t1.FBILLID = t0.MoId
AND t1.FFORMID = t0.FFORMID AND t0.MoEntryId = t1.FBILLENTRYID
INNER JOIN V_CB_EXPALLORESULTREC t2 on t2.FPRODUCTDIMEID = t1.FPRODUCTDIMEID
INNER JOIN V_CB_EXPALLORESULTSEND t3 on t3.FSENDID = t2.FSENDID
INNER JOIN #<23><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ t4_l on t4_l.FEXPID = t2.FEXPENSEITEMID
WHERE 1 = 1
AND t0.MoEntryId != 0
GROUP BY t1.FCOSTCENTERID
,t2.FCOSTCENTERID,t2.FCostItemId,t2.FEXPENSEITEMID
--,t4_l.FNAME
,t4_l.fieldName
,t0.aPATH
)
, #<23><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ<EFBFBD><C4BF>ת<EFBFBD><D7AA> AS (
SELECT *
FROM #<23><><EFBFBD>÷<EFBFBD><C3B7><EFBFBD><EFBFBD><EFBFBD>ϸ t0
PIVOT
(
SUM(t0.famount)
FOR
t0.<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ IN (o1,o2,o3,o4,o5,o6,o7,o8,o9,o10,o11,o12,o13,o14)
--t0.<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ IN ([ֱ<EFBFBD><EFBFBD><EFBFBD>˹<EFBFBD>],[ְ<EFBFBD><EFBFBD>н<EFBFBD><EFBFBD>],[<EFBFBD>ɷ<EFBFBD>֧<EFBFBD><EFBFBD>],[<EFBFBD>Ͷ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>],[<EFBFBD><EFBFBD><EFBFBD>÷<EFBFBD>],[ҵ<EFBFBD><EFBFBD><EFBFBD>д<EFBFBD><EFBFBD><EFBFBD>],[<EFBFBD><EFBFBD><EFBFBD>],[<EFBFBD>۾<EFBFBD><EFBFBD><EFBFBD>̯<EFBFBD><EFBFBD>],[<EFBFBD><EFBFBD><EFBFBD>޷<EFBFBD>],[ˮ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>],[<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>],[<EFBFBD>ӹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>],[<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD>÷<EFBFBD>],[<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>-<EFBFBD><EFBFBD><EFBFBD><EFBFBD>])
) AS t1
)
, #<23><>ʱ<EFBFBD><CAB1><EFBFBD>ɱ<EFBFBD> AS (
SELECT MoBillNo,PMoBillNo
,MoId,MoEntryId,PMoId,PMoEntryId,TopMaterialId,MoMaterialId,t0.FMATERIALID
,t0.FLOT,t0.FLOT_TEXT AS '<EFBFBD><EFBFBD><EFBFBD><EFBFBD>',aPATH,PPATH,lv,t0.FFORMID
--,t0.FAMOUNT AS '<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܳɱ<EFBFBD>', ISNULL(t2.FAMOUNT,0) AS '<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܳɱ<EFBFBD>',ISNULL(t3.FAMOUNT,0) AS '<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܳɱ<EFBFBD>'
--, ISNULL(t4.FAMOUNT,0) AS 'ί<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܳɱ<EFBFBD>',ISNULL(t5.FAMOUNT,0) AS 'ί<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܳɱ<EFBFBD>'
,CASE t0.MoId WHEN 0 THEN (t0.FAMOUNT + ISNULL(t2.FAMOUNT,0) -ISNULL(t3.FAMOUNT,0) + ISNULL(t4.FAMOUNT,0) - ISNULL(t5.FAMOUNT,0)) ELSE 0 END AS 'ֱ<EFBFBD>Ӳ<EFBFBD><EFBFBD><EFBFBD>'
,CASE ISNULL(t6.<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,0) WHEN 0 THEN 0 ELSE ISNULL(t6.<EFBFBD><EFBFBD>Աʵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ,0)/ISNULL(t6.<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,0) END AS '<EFBFBD><EFBFBD>λ<EFBFBD><EFBFBD>ʱB'
,(CASE LEFT(t0.MoBillNo,2) WHEN 'WO' THEN 1 WHEN 'TO' THEN 2 WHEN 'RO' THEN 3 WHEN 'RT' THEN 4 ELSE 0 END) AS 'MoType'
,CASE t0.FFORMID WHEN 'PRD_MO' THEN ISNULL(t0e.FSTOCKINQUASELAUXQTY ,0) ELSE t0.<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> END AS '<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>A'
,CASE t0.FFORMID WHEN 'PRD_MO' THEN ISNULL(t0e.FSTATUS ,0) ELSE t0.FSTATUS END AS 'ҵ<EFBFBD><EFBFBD>״̬'
FROM #<23><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> t0
LEFT JOIN T_PRD_MOENTRY_A t0e on t0.MoEntryId = t0e.FENTRYID
LEFT JOIN #<23><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵ<EFBFBD> t2 on t2.FMOENTRYID = t0.PMoEntryId AND t2.FMATERIALID = t0.FMATERIALID AND t2.FLOT = t0.FLOT AND t2.FFORMID = t0.FFORMID
LEFT JOIN #<23><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵ<EFBFBD> t3 on t3.FMOENTRYID = t0.PMoEntryId AND t3.FMATERIALID = t0.FMATERIALID AND t3.FLOT = t0.FLOT AND t3.FFORMID = t0.FFORMID
LEFT JOIN <><EFBFBD>ϵ<EFBFBD> t4 on t4.FMOENTRYID = t0.PMoEntryId AND t4.FMATERIALID = t0.FMATERIALID AND t4.FLOT = t0.FLOT AND t4.FFORMID = t0.FFORMID
LEFT JOIN <><CEAF><EFBFBD><EFBFBD><EFBFBD>ϵ<EFBFBD> t5 on t5.FMOENTRYID = t0.PMoEntryId AND t5.FMATERIALID = t0.FMATERIALID AND t5.FLOT = t0.FLOT AND t5.FFORMID = t0.FFORMID
LEFT JOIN <>ʹ<EFBFBD>ʱ<EFBFBD>鼯 t6 on t6.FPROORDERENTRYID = t0.MoEntryId
)
, #<23><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ<EFBFBD><C4BF><EFBFBD><EFBFBD> AS (
SELECT t0.MoBillNo
,t0.PMoBillNo
,t0.aPATH
,t0.PPATH
,t0.lv
,t0.<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
,t0.ֱ<EFBFBD>Ӳ<EFBFBD><EFBFBD><EFBFBD>
,t0.ҵ<EFBFBD><EFBFBD>״̬
,t0.<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>A
,t0.<EFBFBD><EFBFBD>λ<EFBFBD><EFBFBD>ʱB
,CASE t0.MoType WHEN 1 THEN t0.<EFBFBD><EFBFBD>λ<EFBFBD><EFBFBD>ʱB ELSE 0 END '<EFBFBD><EFBFBD>ͨC'
,CASE t0.MoType WHEN 2 THEN t0.<EFBFBD><EFBFBD>λ<EFBFBD><EFBFBD>ʱB ELSE 0 END '<EFBFBD><EFBFBD><EFBFBD><EFBFBD>D'
,CASE t0.MoType WHEN 3 THEN t0.<EFBFBD><EFBFBD>λ<EFBFBD><EFBFBD>ʱB ELSE 0 END '<EFBFBD><EFBFBD><EFBFBD><EFBFBD>E'
,CASE t0.MoType WHEN 4 THEN t0.<EFBFBD><EFBFBD>λ<EFBFBD><EFBFBD>ʱB ELSE 0 END '<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>F'
,CASE t0.MoType WHEN 0 THEN t0.<EFBFBD><EFBFBD>λ<EFBFBD><EFBFBD>ʱB ELSE 0 END '<EFBFBD><EFBFBD><EFBFBD><EFBFBD>G'
,CASE t0.MoType WHEN 1 THEN t0.<EFBFBD><EFBFBD>λ<EFBFBD><EFBFBD>ʱB * t0.<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>A ELSE 0 END '<EFBFBD><EFBFBD>ͨI=C*A'
,CASE t0.MoType WHEN 2 THEN t0.<EFBFBD><EFBFBD>λ<EFBFBD><EFBFBD>ʱB * t0.<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>A ELSE 0 END '<EFBFBD><EFBFBD><EFBFBD><EFBFBD>J=D*A'
,CASE t0.MoType WHEN 3 THEN t0.<EFBFBD><EFBFBD>λ<EFBFBD><EFBFBD>ʱB * t0.<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>A ELSE 0 END '<EFBFBD><EFBFBD><EFBFBD><EFBFBD>K=E*A'
,CASE t0.MoType WHEN 4 THEN t0.<EFBFBD><EFBFBD>λ<EFBFBD><EFBFBD>ʱB * t0.<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>A ELSE 0 END '<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>L=F*A'
,CASE t0.MoType WHEN 0 THEN t0.<EFBFBD><EFBFBD>λ<EFBFBD><EFBFBD>ʱB * t0.<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>A ELSE 0 END '<EFBFBD><EFBFBD><EFBFBD><EFBFBD>M=G*A'
,MoId,MoEntryId,PMoId,PMoEntryId,TopMaterialId,MoMaterialId,t0.FMATERIALID
,ISNULL(t7.O1,0) AS 'o1'
,ISNULL(t7.O2,0) AS 'o2'
,ISNULL(t7.O3,0) AS 'o3'
,ISNULL(t7.O4,0) AS 'o4'
,ISNULL(t7.O5,0) AS 'o5'
,ISNULL(t7.O6,0) AS 'o6'
,ISNULL(t7.O7,0) AS 'o7'
,ISNULL(t7.O8,0) AS 'o8'
,ISNULL(t7.O9,0) AS 'o9'
,ISNULL(t7.O10,0) AS 'o10'
,ISNULL(t7.O11,0) AS 'o11'
,ISNULL(t7.O12,0) AS 'o12'
,ISNULL(t7.O13,0) AS 'o13'
,ISNULL(t7.O14,0) AS 'o14'
,CAST(CONCAT('/',REPLACE(t0.aPATH,'.','/'),'/') AS HIERARCHYID) PATH_ID
FROM #<23><>ʱ<EFBFBD><CAB1><EFBFBD>ɱ<EFBFBD> t0
LEFT JOIN #<23><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ<EFBFBD><C4BF>ת<EFBFBD><D7AA> t7 on t7.aPATH = t0.aPATH
)
SELECT * INTO #<23><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ<EFBFBD><C4BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1> FROM #<23><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ<EFBFBD><C4BF><EFBFBD><EFBFBD>
;WITH <><CDB3> AS (
SELECT
SUM(t1.[<EFBFBD><EFBFBD>ͨC]) AS 'C'
,SUM(t1.[<EFBFBD><EFBFBD><EFBFBD><EFBFBD>D]) AS 'D'
,SUM(t1.[<EFBFBD><EFBFBD><EFBFBD><EFBFBD>E]) AS 'E'
,SUM(t1.[<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>F]) AS 'F'
,SUM(t1.[<EFBFBD><EFBFBD><EFBFBD><EFBFBD>G]) AS 'G'
,SUM(t1.[<EFBFBD><EFBFBD>ͨI=C*A]) AS 'I'
,SUM(t1.[<EFBFBD><EFBFBD><EFBFBD><EFBFBD>J=D*A]) AS 'J'
,SUM(t1.[<EFBFBD><EFBFBD><EFBFBD><EFBFBD>K=E*A]) AS 'K'
,SUM(t1.[<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>L=F*A]) AS 'L'
,SUM(t1.[<EFBFBD><EFBFBD><EFBFBD><EFBFBD>M=G*A]) AS 'M'
,SUM(t1.ֱ<EFBFBD>Ӳ<EFBFBD><EFBFBD><EFBFBD>) AS 'ֱ<EFBFBD>Ӳ<EFBFBD><EFBFBD><EFBFBD>'
,SUM(t1.O1) AS 'FO1'
,SUM(t1.O2) AS 'FO2'
,SUM(t1.O3) AS 'FO3'
,SUM(t1.O4) AS 'FO4'
,SUM(t1.O5) AS 'FO5'
,SUM(t1.O6) AS 'FO6'
,SUM(t1.O7) AS 'FO7'
,SUM(t1.O8) AS 'FO8'
,SUM(t1.O9) AS 'FO9'
,SUM(t1.O10) AS 'FO10'
,SUM(t1.O11) AS 'FO11'
,SUM(t1.O12) AS 'FO12'
,SUM(t1.O13) AS 'FO13'
,SUM(t1.O14) AS 'FO14'
,t0.aPATH
FROM #<23><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ<EFBFBD><C4BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1> t0
INNER JOIN #<23><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ<EFBFBD><C4BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1> t1 ON t0.lv <= t1.lv
--AND CHARINDEX(t0.aPATH,t1.aPATH) = 1
AND t1.PATH_ID.IsDescendantOf(t0.PATH_ID) = 1
GROUP BY t0.aPATH
)
SELECT t0.MoBillNo
,t0.PMoBillNo
,t3.FNUMBER AS '<EFBFBD><EFBFBD>Ʒ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>',t3_l.FNAME AS '<EFBFBD><EFBFBD>Ʒ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>',t3_l.FSPECIFICATION AS '<EFBFBD><EFBFBD>Ʒ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͺ<EFBFBD>'
,t1.FNUMBER AS '<EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD><EFBFBD><EFBFBD>',t1_l.FNAME AS '<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>',t1_l.FSPECIFICATION AS '<EFBFBD><EFBFBD><EFBFBD>Ϲ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͺ<EFBFBD>'
,CASE t1b.FERPCLSID WHEN 1 THEN '<EFBFBD>' WHEN 2 THEN '<EFBFBD><EFBFBD><EFBFBD><EFBFBD>' WHEN 3 THEN 'ί<EFBFBD><EFBFBD>' WHEN 5 THEN '<EFBFBD><EFBFBD><EFBFBD><EFBFBD>' ELSE '' END AS '<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>'
,t0.<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
,t0.ҵ<EFBFBD><EFBFBD>״̬
,t2.ֱ<EFBFBD>Ӳ<EFBFBD><EFBFBD><EFBFBD> + t2.FO1 + t2.FO2 + t2.FO3 + t2.FO4 + t2.FO5 + t2.FO6 + t2.FO7 + t2.FO8 + t2.FO9 + t2.FO10 + t2.FO11 + t2.FO12 + t2.FO13 + t2.FO14 AS O0
,t2.ֱ<EFBFBD>Ӳ<EFBFBD><EFBFBD><EFBFBD>
,t2.FO1 AS ֱ<EFBFBD><EFBFBD><EFBFBD>˹<EFBFBD> --AS O1
,t2.FO2 AS ְ<EFBFBD><EFBFBD>н<EFBFBD><EFBFBD> --AS O2
,t2.FO3 AS <EFBFBD>ɷ<EFBFBD>֧<EFBFBD><EFBFBD> --AS O3
,t2.FO4 AS <EFBFBD>Ͷ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> --AS O4
,t2.FO5 AS <EFBFBD><EFBFBD><EFBFBD>÷<EFBFBD> --AS O5
,t2.FO6 AS ҵ<EFBFBD><EFBFBD><EFBFBD>д<EFBFBD><EFBFBD><EFBFBD> --AS O6
,t2.FO7 AS <EFBFBD><EFBFBD><EFBFBD> --AS O7
,t2.FO8 AS <EFBFBD>۾<EFBFBD><EFBFBD><EFBFBD>̯<EFBFBD><EFBFBD> --AS O8
,t2.FO9 AS <EFBFBD><EFBFBD><EFBFBD>޷<EFBFBD> --AS O9
,t2.FO10 AS ˮ<EFBFBD><EFBFBD><EFBFBD><EFBFBD> --AS O10
,t2.FO11 AS <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ķ<EFBFBD> --AS O11
,t2.FO12 --AS [<EFBFBD>ӹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>]
,t2.FO13 AS <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD>÷<EFBFBD> --AS O13
,t2.FO14 --AS [<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>-<EFBFBD><EFBFBD><EFBFBD><EFBFBD>]
,t0.<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>A --AS A
,t0.<EFBFBD><EFBFBD>λ<EFBFBD><EFBFBD>ʱB --AS B
,t2.C AS [<EFBFBD><EFBFBD>ͨC]
,t2.D AS [<EFBFBD><EFBFBD><EFBFBD><EFBFBD>D]
,t2.E AS [<EFBFBD><EFBFBD><EFBFBD><EFBFBD>E]
,t2.F AS [<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>F]
,t2.G AS [<EFBFBD><EFBFBD><EFBFBD><EFBFBD>G]
,t2.C + t2.D +t2.E + t2.F + t2.G AS H--[<EFBFBD>ϼ<EFBFBD>H=C+D+E+F+G]
,t2.I --AS [<EFBFBD><EFBFBD>ͨI=C*A]
,t2.J --AS [<EFBFBD><EFBFBD><EFBFBD><EFBFBD>J=D*A]
,t2.K --AS [<EFBFBD><EFBFBD><EFBFBD><EFBFBD>K=E*A]
,t2.L --AS [<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>L=F*A]
,t2.M --AS [<EFBFBD><EFBFBD><EFBFBD><EFBFBD>M=G*A]
,t2.I + t2.J + t2.K + t2.L + t2.M AS N--[<EFBFBD>ϼ<EFBFBD>N=I+J+K+L+M]
,t0.aPATH
,t0.PPATH
,t0.lv
,MoId,MoEntryId,PMoId,PMoEntryId,TopMaterialId,MoMaterialId,t0.FMATERIALID
,CAST(CONCAT('/',REPLACE(t0.aPATH,'.','/'),'/') AS HIERARCHYID) ID
,CAST(CONCAT('/',REPLACE(t0.PPATH,'.','/'),'/') AS HIERARCHYID) PID
FROM #<23><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ<EFBFBD><C4BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1> t0
INNER JOIN T_BD_MATERIAL t1 on t0.FMATERIALID = t1.FMATERIALID
INNER JOIN T_BD_MATERIALBASE t1b on t1b.FMATERIALID = t0.FMATERIALID
INNER JOIN T_BD_MATERIAL_L t1_l on t0.FMATERIALID = t1_l.FMATERIALID AND t1_l.FLOCALEID = 2052
INNER JOIN <><CDB3> t2 on t0.aPATH = t2.aPATH
INNER JOIN T_BD_MATERIAL t3 on t0.TopMaterialId = t3.FMATERIALID
INNER JOIN T_BD_MATERIAL_L t3_l on t0.TopMaterialId = t3_l.FMATERIALID AND t3_l.FLOCALEID = 2052
ORDER BY CAST(CONCAT('/',REPLACE(t0.aPATH,'.','/'),'/') AS HIERARCHYID)
DROP TABLE #<23><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ<EFBFBD><C4BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>