From 64892d6b41115c90b42cc80d9b50652b3134e76e Mon Sep 17 00:00:00 2001 From: yuyubo <1870149533@qq.com> Date: Mon, 18 Aug 2025 21:06:01 +0800 Subject: [PATCH] 11 --- 7.销售预算成本与实际成本分析报表SQL.sql | 103 +++++++++++++----------- 1 file changed, 56 insertions(+), 47 deletions(-) diff --git a/7.销售预算成本与实际成本分析报表SQL.sql b/7.销售预算成本与实际成本分析报表SQL.sql index 92dcd21..0fbe32d 100644 --- a/7.销售预算成本与实际成本分析报表SQL.sql +++ b/7.销售预算成本与实际成本分析报表SQL.sql @@ -32,9 +32,13 @@ SELECT @begintime= ); SELECT @endtime=DATEADD(MONTH,1,@endtime); + + -- ˻ɱѯSQL2 -SELECT a.FRETCUSTID,a.FMaterialID,a.FNUMBER,a.FNAME,SUM(FREALQTY) AS REALQTY,SUM(a.FAMOUNT_LC) AS FAMOUNT_LC,FAPPROVEDATE2 INTO #TuiHuoChengBen FROM ( -SELECT t1.FRETCUSTID, T1.FID, T1.FBILLNO,T2.FENTRYID,t2.FMaterialID,ff.FNUMBER, FREALQTY ,t4.FAMOUNT_LC,T6.FNAME , FORMAT(t1.FDATE, 'yyyy-MM-01') AS FAPPROVEDATE2 +SELECT a.FRETCUSTID,CustomerName,a.FNUMBER,a.FNAME,SUM(FREALQTY)/4 AS REALQTY,SUM(a.FAMOUNT_LC) AS FAMOUNT_LC,FAPPROVEDATE2,CustomerCode,groupID INTO #TuiHuoChengBen +FROM ( +SELECT t1.FRETCUSTID,t44.FNAME AS CustomerName,t33.FNUMBER AS CustomerCode, T1.FID, T1.FBILLNO,T2.FENTRYID,t55.FNUMBER, FREALQTY ,t4.FAMOUNT_LC,T6.FNAME , FORMAT(t1.FDATE, 'yyyy-MM-01') AS FAPPROVEDATE2 +,t55.fid AS groupID FROM T_SAL_RETURNSTOCK T1 INNER JOIN T_SAL_RETURNSTOCKENTRY T2 INNER JOIN T_SAL_RETURNSTOCKENTRY_C T3 ON T3.FENTRYID = T2.FENTRYID ON T1.FID = T2.FID @@ -42,10 +46,13 @@ ON T1.FID = T2.FID LEFT JOIN T_HS_CALDIMENSIONS T5 ON T3.FDIMENSIONID = T5.FDIMENSIONID LEFT JOIN T_BD_EXPENSE_L T6 ON T4.FEXPENSEID = T6.FEXPID AND T6.FLOCALEID = 2052 LEFT JOIN T_BD_MATERIAL ff ON t2.FMaterialID=ff.FMaterialID - WHERE T1.FDATE>=@begintime AND t1.FDATE<@endtime) a -GROUP BY a.FRETCUSTID,a.FMaterialID,a.FNUMBER,a.FNAME,FAPPROVEDATE2 - -ORDER BY a.FRETCUSTID,FMaterialID,FAPPROVEDATE2 + INNER JOIN VHUB_T_BMMGroupLinkTable cc ON ff.FMATERIALGROUP = cc.[FMATERIALGROUP] + INNER JOIN VHUB_BD_BMMaterialGroup t55 ON cc.[FBMMATERIALGROUP]= t55.FID + LEFT JOIN T_BD_CUSTOMER t33 ON T1.FRETCUSTID= t33.FCUSTID + LEFT JOIN T_BD_CUSTOMER_L t44 ON t33.FCUSTID = t44.FCUSTID + WHERE T1.FDATE>=@begintime AND t1.FDATE<@endtime AND t1.FDOCUMENTSTATUS='C') a +GROUP BY a.FRETCUSTID,a.FNUMBER,a.FNAME,FAPPROVEDATE2 ,CustomerName,CustomerCode,groupID +ORDER BY a.FRETCUSTID,FNUMBER,FAPPROVEDATE2 --SELECT * FROM #TuiHuoChengBen @@ -54,9 +61,10 @@ WHERE bb.Year=2025 --SELECT * FROM #TempNianDuXiaoShouYuSuan - -- ۳ɱѯSQL - SELECT a.FCustomerID,a.FMaterialID,a.FNUMBER,a.FNAME,SUM(FREALQTY) AS RealQty,SUM(a.FAMOUNT_LC) AS FAMOUNT_LC,FAPPROVEDATE2 INTO #XiaoShouChengBen FROM ( -SELECT t1.FCustomerID,T1.FID, T1.FBILLNO,T2.FENTRYID,t2.FMaterialID,ff.FNUMBER, T2.FREALQTY ,t4.FAMOUNT_LC,T6.FNAME , FORMAT(t1.FDATE, 'yyyy-MM-01') AS FAPPROVEDATE2 +-- ۳ɱѯSQL + SELECT a.FCustomerID,a. CustomerName,a.FNUMBER,a.FNAME,SUM(FREALQTY)/4 AS RealQty,SUM(a.FAMOUNT_LC) AS FAMOUNT_LC,FAPPROVEDATE2 , CustomerCode,groupID INTO #XiaoShouChengBen FROM ( +SELECT t1.FCustomerID,t44.FNAME AS CustomerName,t33.FNUMBER AS CustomerCode,T1.FID, T1.FBILLNO,T2.FENTRYID,t2.FMaterialID,t55.FNUMBER, T2.FREALQTY ,t4.FAMOUNT_LC,T6.FNAME , FORMAT(t1.FDATE, 'yyyy-MM-01') AS FAPPROVEDATE2 +,t55.fid AS groupID FROM T_SAL_OUTSTOCK T1 INNER JOIN T_SAL_OUTSTOCKENTRY T2 INNER JOIN T_SAL_OUTSTOCKENTRY_C T3 ON T3.FENTRYID = T2.FENTRYID ON T1.FID = T2.FID @@ -64,62 +72,63 @@ ON T1.FID = T2.FID LEFT JOIN T_HS_CALDIMENSIONS T5 ON T3.FDIMENSIONID = T5.FDIMENSIONID LEFT JOIN T_BD_EXPENSE_L T6 ON T4.FEXPENSEID = T6.FEXPID AND T6.FLOCALEID = 2052 LEFT JOIN T_BD_MATERIAL ff ON t2.FMaterialID=ff.FMaterialID - WHERE T1.FDATE>=@begintime AND t1.FDATE<@endtime) a -GROUP BY a.FCustomerID,a.FMaterialID,a.FNUMBER,a.FNAME,FAPPROVEDATE2 + INNER JOIN VHUB_T_BMMGroupLinkTable cc ON ff.FMATERIALGROUP = cc.[FMATERIALGROUP] + INNER JOIN VHUB_BD_BMMaterialGroup t55 ON cc.[FBMMATERIALGROUP]= t55.FID + LEFT JOIN T_BD_CUSTOMER t33 ON T1.FCUSTOMERID= t33.FCUSTID + LEFT JOIN T_BD_CUSTOMER_L t44 ON t33.FCUSTID = t44.FCUSTID + WHERE T1.FDATE>=@begintime AND t1.FDATE<@endtime AND t1.FDOCUMENTSTATUS='C' ) a +GROUP BY a.FCustomerID,a.FNUMBER,a.FNAME,FAPPROVEDATE2 ,CustomerName,CustomerCode,groupID -ORDER BY a.FCustomerID,FMaterialID,FAPPROVEDATE2 +ORDER BY a.FCustomerID, FNUMBER,FAPPROVEDATE2 --SELECT * FROM #XiaoShouChengBen ---ձ - SELECT [ͻ],[ͻ],[Ԥ],FCUSTOMERID,FDOCUMENTSTATUS,[FBMMATERIALGROUP],SUM([]-[˻]) AS [] + + SELECT [ͻ],[ͻ],[Ԥ],FCUSTOMERID,AVG([]-[˻]) AS [] ,[Ԥܳɱ]=AVG([Ԥ]*[Ԥܳɱ]),[Ԥɱ()-]=AVG([Ԥ]*[Ԥɱ_ϵ]),[Ԥɱ()-]=AVG([Ԥ]*[Ԥɱ_˹]) ,[Ԥɱ()-]=AVG([Ԥ]*[Ԥɱ_Ʒѵ]),AVG([Ԥ]) AS [Ԥ] - ,[ʵܳɱ]=SUM([ʵܳɱ]),[ʵʳɱ()-]=SUM([ʵʳɱ()-]),[ʵʳɱ()-]=SUM([ʵʳɱ()-]),[ʵʳɱ()-]=SUM([ʵʳɱ()-]) + ,[ʵܳɱ]=AVG([ʵܳɱ]),[ʵʳɱ()-]=AVG([ʵʳɱ()-]),[ʵʳɱ()-]=SUM([ʵʳɱ()-]),[ʵʳɱ()-]=AVG([ʵʳɱ()-]) ,AVG([Ԥܳɱ]) AS [Ԥܳɱ],AVG([Ԥɱ_ϵ]) AS [Ԥɱ_ϵ],AVG([Ԥɱ_˹]) AS [Ԥɱ_˹],AVG([Ԥɱ_Ʒѵ]) AS [Ԥɱ_Ʒѵ] INTO #TempResultTable FROM ( SELECT - t3.FNUMBER AS [ͻ],t2.FMATERIALID, - t4.FNAME AS [ͻ], - t5.FNUMBER AS [Ԥ], - T1.FCUSTOMERID,t1.FDOCUMENTSTATUS -, cc.[FBMMATERIALGROUP],SUM(FRealQty) AS [] -,ISNULL((SELECT bb.MonthValue FROM #TempNianDuXiaoShouYuSuan bb WHERE bb.FAPPROVEDATE=FORMAT(t1.FDATE, 'yyyy-MM-01') - AND bb.FBMMATERIALGROUP= cc.[FBMMATERIALGROUP] AND bb.FCUSTOMERID=T1.FCUSTOMERID),0) [Ԥ] -,ISNULL((SELECT SUM(FREALQTY) FROM dbo.T_SAL_RETURNSTOCK tui LEFT JOIN T_SAL_RETURNSTOCKENTRY tuide ON tui.FID=tuide.FID - WHERE FORMAT(tui.FDATE, 'yyyy-MM-01') = FORMAT(t1.FDATE, 'yyyy-MM-01') AND tui.FDOCUMENTSTATUS='C' AND t2.FMATERIALID=tuide.FMATERIALID -),0) [˻] -,FORMAT(t1.FDATE, 'yyyy-MM-01') AS FAPPROVEDATE2 + ISNULL(t1.CustomerCode,bb.CustomerCode) AS [ͻ], + ISNULL(t1.CustomerName,bb.CustomerName) AS [ͻ], + ISNULL(t1.FNUMBER,bb.FNUMBER) AS [Ԥ], + T1.FCUSTOMERID + , SUM(t1.RealQty) AS [] +,ISNULL((SELECT bb.MonthValue FROM #TempNianDuXiaoShouYuSuan bb WHERE bb.FAPPROVEDATE=t1.FAPPROVEDATE2 + AND bb.FBMMATERIALGROUP= t1.groupID AND bb.FCUSTOMERID=T1.FCUSTOMERID),0) [Ԥ] +,ISNULL( SUM(bb.RealQty),0) [˻] +, ISNULL(t1.FAPPROVEDATE2,bb.FAPPROVEDATE2) AS FAPPROVEDATE2 ,ISNULL(AVG(cost.FALLAMOUNT),0) AS [Ԥܳɱ],ISNULL(AVG(cost.FMATERIALCOSTAMOUNT),0) AS [Ԥɱ_ϵ],ISNULL(AVG(cost.FLABORCOSTAMOUNT),0) [Ԥɱ_˹] ,ISNULL(AVG(FLABORCOSTAMOUNT),0) AS [Ԥɱ_Ʒѵ] - ,( ISNULL((SELECT SUM(FAMOUNT_LC) FROM #XiaoShouChengBen bbb WHERE bbb.FMaterialID=T2.FMaterialID AND bbb.FCustomerID=T1.FCUSTOMERID AND bbb.FAPPROVEDATE2=FORMAT(t1.FDATE, 'yyyy-MM-01') ),0)- - ISNULL((SELECT SUM(FAMOUNT_LC) FROM #TuiHuoChengBen bbb WHERE bbb.FMaterialID=T2.FMaterialID AND bbb.FRETCUSTID=T1.FCUSTOMERID AND bbb.FAPPROVEDATE2=FORMAT(t1.FDATE, 'yyyy-MM-01') ),0)) AS [ʵܳɱ] - ,( ISNULL((SELECT SUM(FAMOUNT_LC) FROM #XiaoShouChengBen bbb WHERE bbb.FMaterialID=T2.FMaterialID AND bbb.FCustomerID=T1.FCUSTOMERID AND bbb.FAPPROVEDATE2=FORMAT(t1.FDATE, 'yyyy-MM-01') AND fname='ϳɱ'),0)- - ISNULL((SELECT SUM(FAMOUNT_LC) FROM #TuiHuoChengBen bbb WHERE bbb.FMaterialID=T2.FMaterialID AND bbb.FRETCUSTID=T1.FCUSTOMERID AND bbb.FAPPROVEDATE2=FORMAT(t1.FDATE, 'yyyy-MM-01') AND fname='ϳɱ' ),0)) AS [ʵʳɱ()-] - ,( ISNULL((SELECT SUM(FAMOUNT_LC) FROM #XiaoShouChengBen bbb WHERE bbb.FMaterialID=T2.FMaterialID AND bbb.FCustomerID=T1.FCUSTOMERID AND bbb.FAPPROVEDATE2=FORMAT(t1.FDATE, 'yyyy-MM-01') AND fname IN ('','ίӹ')),0)- - ISNULL((SELECT SUM(FAMOUNT_LC) FROM #TuiHuoChengBen bbb WHERE bbb.FMaterialID=T2.FMaterialID AND bbb.FRETCUSTID=T1.FCUSTOMERID AND bbb.FAPPROVEDATE2=FORMAT(t1.FDATE, 'yyyy-MM-01') AND fname IN ('','ίӹ') ),0)) AS [ʵʳɱ()-] - ,( ISNULL((SELECT SUM(FAMOUNT_LC) FROM #XiaoShouChengBen bbb WHERE bbb.FMaterialID=T2.FMaterialID AND bbb.FCustomerID=T1.FCUSTOMERID AND bbb.FAPPROVEDATE2=FORMAT(t1.FDATE, 'yyyy-MM-01') AND fname=''),0)- - ISNULL((SELECT SUM(FAMOUNT_LC) FROM #TuiHuoChengBen bbb WHERE bbb.FMaterialID=T2.FMaterialID AND bbb.FRETCUSTID=T1.FCUSTOMERID AND bbb.FAPPROVEDATE2=FORMAT(t1.FDATE, 'yyyy-MM-01') AND fname='' ),0)) AS [ʵʳɱ()-] + , ISNULL(SUM(ISNULL(t1.FAMOUNT_LC,0)-ISNULL(bb.FAMOUNT_LC,0)),0) AS [ʵܳɱ] + ,( ISNULL((SELECT SUM(jjj.FAMOUNT_LC) FROM #XiaoShouChengBen jjj WHERE t1.FNUMBER=jjj.FNUMBER AND jjj.FAPPROVEDATE2=t1.FAPPROVEDATE2 AND t1.FCUSTOMERID=jjj.FCUSTOMERID AND jjj.fname='ϳɱ'),0)- + ISNULL((SELECT SUM(jjj.FAMOUNT_LC) FROM #TuiHuoChengBen jjj WHERE bb.FNUMBER=jjj.FNUMBER AND jjj.FAPPROVEDATE2=bb.FAPPROVEDATE2 AND bb.FRETCUSTID=jjj.FRETCUSTID AND jjj.fname='ϳɱ' ),0)) AS [ʵʳɱ()-] + ,( ISNULL((SELECT SUM(jjj.FAMOUNT_LC) FROM #XiaoShouChengBen jjj WHERE t1.FNUMBER=jjj.FNUMBER AND jjj.FAPPROVEDATE2=t1.FAPPROVEDATE2 AND t1.FCUSTOMERID=jjj.FCUSTOMERID AND fname IN ('','ίӹ')),0)- + ISNULL((SELECT SUM(jjj.FAMOUNT_LC) FROM #TuiHuoChengBen jjj WHERE bb.FNUMBER=jjj.FNUMBER AND jjj.FAPPROVEDATE2=bb.FAPPROVEDATE2 AND bb.FRETCUSTID=jjj.FRETCUSTID AND fname IN ('','ίӹ') ),0)) AS [ʵʳɱ()-] + ,( ISNULL((SELECT SUM(jjj.FAMOUNT_LC) FROM #XiaoShouChengBen jjj WHERE t1.FNUMBER=jjj.FNUMBER AND jjj.FAPPROVEDATE2=t1.FAPPROVEDATE2 AND t1.FCUSTOMERID=jjj.FCUSTOMERID AND fname=''),0)- + ISNULL((SELECT SUM(jjj.FAMOUNT_LC) FROM #TuiHuoChengBen jjj WHERE bb.FNUMBER=jjj.FNUMBER AND jjj.FAPPROVEDATE2=bb.FAPPROVEDATE2 AND bb.FRETCUSTID=jjj.FRETCUSTID AND fname='' ),0)) AS [ʵʳɱ()-] FROM - T_SAL_OUTSTOCK T1 - INNER JOIN T_SAL_OUTSTOCKENTRY T2 ON T1.FID = T2.FID - INNER JOIN T_BD_MATERIAL matal2 ON T2.FMATERIALID = matal2.FMATERIALID - INNER JOIN VHUB_T_BMMGroupLinkTable cc ON matal2.FMATERIALGROUP = cc.[FMATERIALGROUP] - LEFT JOIN T_BD_CUSTOMER t3 ON t1.FCUSTOMERID= t3.FCUSTID - LEFT JOIN T_BD_CUSTOMER_L t4 ON t3.FCUSTID = t4.FCUSTID - INNER JOIN VHUB_BD_BMMaterialGroup t5 ON cc.[FBMMATERIALGROUP]= t5.FID - LEFT JOIN VHUB_T_BMGStandCost cost ON cost.FDATE= FORMAT(t1.FDATE, 'yyyy-MM-01') AND cost.FBMMATERIALGROUP= t5.FID - WHERE T1.FDATE>=@begintime AND t1.FDATE<@endtime - AND (@CustomerId = 'A' OR t1.FCUSTOMERID IN (SELECT value FROM dbo.SplitString(@CustomerId, ',') )) AND (@FBMMaterialGroup = 'A' OR t5.FID IN (SELECT value FROM dbo.SplitString(@FBMMaterialGroup, ',') )) - GROUP BY T1.FCUSTOMERID, cc.[FBMMATERIALGROUP],t1.FDOCUMENTSTATUS, t3.FNUMBER , t2.FMATERIALID, - t4.FNAME , t5.FNUMBER , FORMAT(t1.FDATE, 'yyyy-MM-01') ) a - GROUP BY [ͻ],[ͻ],[Ԥ],FCUSTOMERID,FDOCUMENTSTATUS,[FBMMATERIALGROUP] + #XiaoShouChengBen t1 + INNER JOIN VHUB_BD_BMMaterialGroup t5 ON t5.FNUMBER= t1.FNUMBER + LEFT JOIN VHUB_T_BMGStandCost cost ON cost.FDATE= FAPPROVEDATE2 AND cost.FBMMATERIALGROUP= t5.FID + LEFT JOIN #TuiHuoChengBen bb ON t1.FCUSTOMERID=bb.FRETCUSTID AND t1.FNUMBER=bb.FNUMBER AND t1.FAPPROVEDATE2=bb.FAPPROVEDATE2 + WHERE T1.FAPPROVEDATE2>=@begintime AND t1.FAPPROVEDATE2<@endtime + AND (@CustomerId = 'A' OR t1.FCUSTOMERID IN (SELECT value FROM dbo.SplitString(@CustomerId, ',') )) AND + (@FBMMaterialGroup = 'A' OR t5.FID IN (SELECT value FROM dbo.SplitString(@FBMMaterialGroup, ',') )) + GROUP BY t1.FCustomerID,t1.FNUMBER,t1.FNAME,t1.FAPPROVEDATE2 ,t1.CustomerName ,t1.CustomerCode,bb.CustomerCode,bb.CustomerName,bb.FNUMBER,t1.groupID,bb.FAPPROVEDATE2,bb.FRETCUSTID + + ) a + GROUP BY [ͻ],[ͻ],[Ԥ],FCUSTOMERID + --WHERE a.FCUSTOMERID=641983 AND a.FBMMATERIALGROUP=941609 - SELECT [ͻ] AS F_KeHuCode,[ͻ] AS F_KeHuName, [Ԥ] AS F_WuLiaoFenZu,FCUSTOMERID,FDOCUMENTSTATUS,[FBMMATERIALGROUP],[Ԥ] AS F_YuSuanShuLiang,[] AS F_ShiJiXiaoShouShuLiang + SELECT [ͻ] AS F_KeHuCode,[ͻ] AS F_KeHuName, [Ԥ] AS F_WuLiaoFenZu,FCUSTOMERID,[Ԥ] AS F_YuSuanShuLiang,[] AS F_ShiJiXiaoShouShuLiang ,[Ԥʵ] AS F_YSYSJSLCY,a.Ԥܳɱ AS F_YSZCB,ʵܳɱ AS F_SJZCB,a.Ԥʵܳɱ AS F_YSYSJZCBCY,[Ԥɱ()-] AS F_YSZCB_Z ,[ʵʳɱ()-] AS F_SJCB_L_Z,[-] AS F_CHaYi_Z,[Ԥɱ()-] AS F_YSCB_G_Z,[ʵʳɱ()-] AS F_SJCB_G_Z,[-ܹ] AS F_ChaYi_ZG,[Ԥɱ()-] AS F_YSCB_F_Z ,[ʵʳɱ()-] AS F_SJCB_F_Z,[-ܷ] AS F_ChaYi_ZF,[λԤɱ] AS F_DWZYSCB,[λʵܳɱ] AS F_DWSJZCB