;WITH #材料费用分配明细 AS ( SELECT t0.FOUTACCTGID ,t0.FPRODUCTDIMEID ,t2.FMATERIALID ,t2.FLOT ,SUM(t0.FAMOUNT) '总成本' ,SUM(t0.FQTY) '数量' ,MAX(CONVERT(int,CONVERT(varchar(6) ,t3.FBILLDATE,112))) AS 'billDate' FROM V_CB_COSTALLORESULTSEND t0 INNER JOIN T_CB_PROORDERDIME t1 on t0.FPRODUCTDIMEID = t1.FPRODUCTDIMEID INNER JOIN T_HS_INIVSTOCKDIMENSION t2 on t2.FENTRYID = t0.FDIMEENTRYID INNER JOIN V_HS_OUTINSTOCKSEQ t3 on t3.FENTRYID = t0.FOUTINSTOCKID WHERE 1 = 1 AND t1.FPRODUCTNO = 'WO2304120176' GROUP BY t0.FOUTACCTGID,t0.FPRODUCTDIMEID ,t2.FMATERIALID,t2.FLOT ) , #成本计算 AS ( SELECT t0.FPRODUCTDIMEID ,t0.FPRODUCTNO ,t2.FMATERIALID ,SUM(t2.FQUALIFIEDINQTY) '本期完工入库数量' ,SUM(t2e.FQUALIFIEDINAMOUNT) AS '本期完工入库金额' ,SUM(t2.FCURRINPUTAMOUNT) AS '本期投入金额' FROM T_CB_PROORDERDIME t0 INNER JOIN V_CB_PROORDERINFO t1 ON t1.FPRODUCTDIMEID= t0.FPRODUCTDIMEID INNER JOIN V_CB_COSTMATTERIAL t2 on t2.FID = t1.FID INNER JOIN V_CB_COSTMATTERIALDETAIL t2e on t2.FENTRYID = t2e.FENTRYID WHERE 1=1 AND t2.FEXPTYPE = 0 AND t0.FPRODUCTNO = 'WO2304120176' AND t2e.FEXPENSESITEMID = 20045 AND t2e.FCOSTITEMID = 20522 GROUP BY t0.FPRODUCTDIMEID ,t2.FMATERIALID ,t0.FPRODUCTNO ) SELECT * ,t1.总成本 / t0.本期投入金额 * t0.本期完工入库金额 AS '完工金额' FROM #成本计算 t0 INNER JOIN #材料费用分配明细 t1 on t0.FPRODUCTDIMEID = t1.FPRODUCTDIMEID AND t0.FMATERIALID = t1.FMATERIALID