Files
GateDge2023_ljy/07.珠海英搏尔/Enpower.Python/批量还原产品成本_V1.0.sql

106 lines
3.7 KiB
MySQL
Raw Normal View History

2024-08-29 09:42:49 +08:00
DECLARE @period int
DECLARE @dbName varchar(100)
DECLARE @ACCTGORGID int
SET @ACCTGORGID = 100039
SET @period = 201801
SELECT @dbName = DB_NAME()
IF @dbName != 'AIS20231110222743'
BEGIN
SET @period = 202406
SET @ACCTGORGID = 1
END
;WITH #<23><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD> AS (
SELECT t0.FPRODUCTNO
,t0.FPRODUCTID
,t0.FBILLID
,t0.FBILLENTRYID
,t0.FFORMID
,t0.FPRODUCTDIMEID
,(t2.FYEAR * 100 + t2.FPERIOD) AS 'FPERIOD'
FROM T_CB_PROORDERDIME t0
INNER JOIN V_CB_PROORDERINFO t1 on t0.FPRODUCTDIMEID = t1.FPRODUCTDIMEID
INNER JOIN V_HS_OUTACCTG t2 on t2.FID = t1.FACCTGID
WHERE 1=1
AND (t2.FYEAR * 100 + t2.FPERIOD) = @period
AND t2.FACCTGORGID = @ACCTGORGID
AND t2.FCOMPUTEID != ''
AND t0.FFORMID = 'PRD_MO'
AND t1.FENDINITKEY = 1 --<EFBFBD><EFBFBD>ĩ<EFBFBD><EFBFBD>ʶ
)
, #<23>ɱ<EFBFBD><C9B1><EFBFBD><EFBFBD><EFBFBD> AS (
SELECT t0.FPRODUCTNO,t0.FPRODUCTID,t0.FPRODUCTDIMEID,t0.FBILLID,t0.FBILLENTRYID
,t1.FCOSTITEMID
,(CASE WHEN t1.FEXPENSESITEMID = 4655037 AND t1.FCOSTITEMID = 20523 THEN 4655093 ELSE t1.FEXPENSESITEMID END) AS 'FEXPENSESITEMID'
,t1.FEXPTYPE
,t1.FQUALIFIEDINAMOUNT
,t1.FCURRINPUTAMOUNT
FROM #<23><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD> t0
CROSS APPLY (
SELECT t1.FID
,t1.FPRODUCTDIMEID
,t3d.FCOSTITEMID
,t3d.FEXPENSESITEMID
,t3.FEXPTYPE
,SUM(t3d.FQUALIFIEDINAMOUNT) 'FQUALIFIEDINAMOUNT'
,SUM(t3d.FCURRINPUTAMOUNT) 'FCURRINPUTAMOUNT'
FROM V_CB_PROORDERINFO t1
INNER JOIN V_HS_OUTACCTG t2 on t1.FACCTGID = t2.FID
AND (t2.FYEAR * 100 + t2.FPERIOD) <= t0.FPERIOD
INNER JOIN V_CB_COSTMATTERIAL t3 on t3.FID = t1.FID
INNER JOIN V_CB_COSTMATTERIALDETAIL t3d on t3d.FENTRYID = t3.FENTRYID
WHERE 1 = 1
AND t1.FPRODUCTDIMEID = t0.FPRODUCTDIMEID
AND t1.FENDINITKEY = 1
GROUP BY t1.FPRODUCTDIMEID
,t3d.FCOSTITEMID
,t3d.FEXPENSESITEMID
,t3.FEXPTYPE
) t1
)
, #<23>ɱ<EFBFBD>ת<EFBFBD><D7AA> AS (
SELECT t1.FPRODUCTNO,t1.FPRODUCTID,t1.FPRODUCTDIMEID,t1.FBILLID,t1.FBILLENTRYID
,t1.O1,t1.O2,t1.O3,t1.O4,t1.O5,t1.O6,t1.O7,t1.O8,t1.O9,t1.O10,t1.O11,t1.O12,t1.O13,t1.O14,t1.O15,t1.O16
FROM (
SELECT t0.FPRODUCTNO,t0.FPRODUCTID,t0.FPRODUCTDIMEID,t0.FBILLID,t0.FBILLENTRYID
,t0.FQUALIFIEDINAMOUNT,t1.fieldName
FROM #<23>ɱ<EFBFBD><C9B1><EFBFBD><EFBFBD><EFBFBD> t0
LEFT JOIN V_BD_COST_RESTORE_EXPENSE t1 on t0.FEXPENSESITEMID = t1.FEXPID
WHERE NOT (t0.FCOSTITEMID = 20522 AND t0.FEXPENSESITEMID = 20045)
)t0
PIVOT
(
SUM(t0.FQUALIFIEDINAMOUNT) FOR
t0.fieldName IN (O1,O2,O3,O4,O5,O6,O7,O8,O9,O10,O11,O12,O13,O14,O15,O16)
) AS t1
)
SELECT t0.*
,ISNULL(t1.O1,0) AS 'O1'
,ISNULL(t1.O2,0) AS 'O2'
,ISNULL(t1.O3,0) AS 'O3'
,ISNULL(t1.O4,0) AS 'O4'
,ISNULL(t1.O5,0) AS 'O5'
,ISNULL(t1.O6,0) AS 'O6'
,ISNULL(t1.O7,0) AS 'O7'
,ISNULL(t1.O8,0) AS 'O8'
,ISNULL(t1.O9,0) AS 'O9'
,ISNULL(t1.O10,0) AS 'O10'
,ISNULL(t1.O11,0) AS 'O11'
,ISNULL(t1.O12,0) AS 'O12'
,ISNULL(t1.O13,0) AS 'O13'
,ISNULL(t1.O14,0) AS 'O14'
,ISNULL(t1.O15,0) AS 'O15'
,ISNULL(t1.O16,0) AS 'O16'
,ISNULL(t1.O2,0) + ISNULL(t1.O3,0) + ISNULL(t1.O4,0) + ISNULL(t1.O5,0) + ISNULL(t1.O6,0) + ISNULL(t1.O7,0) + ISNULL(t1.O8,0) + ISNULL(t1.O9,0) + ISNULL(t1.O10,0) + ISNULL(t1.O11,0) + ISNULL(t1.O12,0) + ISNULL(t1.O13,0) + ISNULL(t1.O14,0) + ISNULL(t1.O15,0) + ISNULL(t1.O16,0) AS 'O'
,ISNULL(t1.O1,0) + ISNULL(t1.O2,0) + ISNULL(t1.O3,0) + ISNULL(t1.O4,0) + ISNULL(t1.O5,0) + ISNULL(t1.O6,0) + ISNULL(t1.O7,0) + ISNULL(t1.O8,0) + ISNULL(t1.O9,0) + ISNULL(t1.O10,0) + ISNULL(t1.O11,0) + ISNULL(t1.O12,0) + ISNULL(t1.O13,0) + ISNULL(t1.O14,0) + ISNULL(t1.O15,0) + ISNULL(t1.O16,0) AS 'R'
,0 P
,t2.FNUMBER
,t2_l.FNAME
,t2_l.FDESCRIPTION
FROM #<23><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD> t0
LEFT JOIN #<23>ɱ<EFBFBD>ת<EFBFBD><D7AA> t1 on t0.FBILLID = t1.FBILLID
AND t0.FBILLENTRYID = t1.FBILLENTRYID
INNER JOIN T_BD_MATERIAL t2 on t0.FPRODUCTID = t2.FMATERIALID
INNER JOIN T_BD_MATERIAL_L t2_l on t2_l.FMATERIALID = t0.FPRODUCTID AND t2_l.FLOCALEID = 2052