From 878dd57219ef4e0980b9eda7c6d0bdfb09786c8e Mon Sep 17 00:00:00 2001 From: yuyubo <1870149533@qq.com> Date: Fri, 20 Jun 2025 14:41:04 +0800 Subject: [PATCH] 22 --- 8.预算利润与实际利润对比分析存储过程1.sql | 583 ++++++++++++++++++++++ 1 file changed, 583 insertions(+) create mode 100644 8.预算利润与实际利润对比分析存储过程1.sql diff --git a/8.预算利润与实际利润对比分析存储过程1.sql b/8.预算利润与实际利润对比分析存储过程1.sql new file mode 100644 index 0000000..3c94181 --- /dev/null +++ b/8.预算利润与实际利润对比分析存储过程1.sql @@ -0,0 +1,583 @@ +IF OBJECT_ID('dbo.[RP_YuSuanShiJiLiRun_FenXi]', 'P') IS NOT NULL +BEGIN + DROP PROCEDURE dbo.RP_YuSuanShiJiLiRun_FenXi; + PRINT '洢 dbo.[RP_YuSuanShiJiLiRun_FenXi] ɾ'; +END; +GO + +-- µĴ洢 +CREATE PROCEDURE dbo.RP_YuSuanShiJiLiRun_FenXi + @FYear NVARCHAR(10), --- + @FStartMonth NVARCHAR(10) + + AS +BEGIN + +--DECLARE @FYear nvarchar(10)=2025, @FStartMonth nvarchar(10)=3 +DECLARE @sql NVARCHAR(MAX),@where2 NVARCHAR(max)='',@where3 NVARCHAR(max)='',@monthN INT=1; +DECLARE @begintime DATETIME,@endtime DATETIME,@yearBeginTime DATETIME,@fid INT,@FEntryID int; +DECLARE @anmountMonth DECIMAL(18,2)=0,@anmountYear DECIMAL(18,2)=0 +SELECT @begintime= + CAST( + @FYear + '-' + + RIGHT('0' + @FStartMonth, 2) + '-' + + RIGHT('0' + 1, 2) + AS DATE + ), + @yearBeginTime= CAST( + @FYear + '-01-01' + AS DATE + ) + + SELECT @endtime=DATEADD(MONTH,1,@begintime); + + + SELECT b.F_XM,months=@FStartMonth,years=@FYear,[BenQiYuSuan]=CAST(0 AS DECIMAL(18,2)),F_BQSJJE=CAST(0 AS DECIMAL(18,2)) + ,F_BQYSSJJECY=CAST(0 AS DECIMAL(18,2)) ,F_BNYSJE=CAST(0 AS DECIMAL(18,2)) ,F_BNSJJE=CAST(0 AS DECIMAL(18,2)),F_BNYSSJCY=CAST(0 AS DECIMAL(18,2)) + INTO #T_YuSuanShiJiLiRunEntity + FROM F_XMKMTitle a + LEFT JOIN F_XMKMDetail b ON a.FUNITCONVERTRATEID=b.FUNITCONVERTRATEID +WHERE a.F_YEAR3=2025 + + DECLARE @i INT=1,@sql2 NVARCHAR(max)='',@endMonth INT = CONVERT(INT,@FStartMonth),@benqi NVARCHAR(50)='F_MONTH'+@FStartMonth; + while(@i<=@endMonth) + BEGIN + IF(@i<@endMonth) + BEGIN + SELECT @sql2 +='F_MONTH'+CONVERT(nvarchar(10),@i)+'+'; + END + ELSE + BEGIN + SELECT @sql2 +='F_MONTH'+CONVERT(NVARCHAR(10),@i); + END + + SELECT @i=@i+1; + END + SELECT @sql= N'UPDATE #T_YuSuanShiJiLiRunEntity SET [BenQiYuSuan]='+@benqi+',F_BNYSJE='+@sql2+' + FROM F_XMKMTitle a + LEFT JOIN F_XMKMDetail b ON a.FUNITCONVERTRATEID=b.FUNITCONVERTRATEID +WHERE a.F_YEAR3='''+@FYear+''' AND #T_YuSuanShiJiLiRunEntity.f_xm=b.F_XM '; +PRINT @sql + EXEC sp_executesql + @sql, + N'@FYear INT', + @FYear + + + -- ˻ɱѯ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.FAPPROVEDATE, 'yyyy-MM-01') AS FAPPROVEDATE2 +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 + INNER JOIN T_SAL_RETURNSTOCKENTRY_CE T4 ON T3.FENTRYID = T4.FENTRYID + 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.FAPPROVEDATE>=@yearBeginTime AND t1.FAPPROVEDATE<@endtime + ) a +GROUP BY a.FRETCUSTID,a.FMaterialID,a.FNUMBER,a.FNAME,FAPPROVEDATE2 +ORDER BY a.FRETCUSTID,FMaterialID,FAPPROVEDATE2 + +--SELECT * FROM #TuiHuoChengBen + +--SELECT * , DATEFROMPARTS((bb.Year), (bb.Month), 1) AS FAPPROVEDATE INTO #TempNianDuXiaoShouYuSuan FROM NianDuXiaoShouYuSuan bb +--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.FAPPROVEDATE, 'yyyy-MM-01') AS FAPPROVEDATE2 +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 + INNER JOIN T_SAL_OUTSTOCKENTRY_CE T4 ON T3.FENTRYID = T4.FENTRYID + 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.FAPPROVEDATE>=@yearBeginTime AND t1.FAPPROVEDATE<@endtime) a +GROUP BY a.FCustomerID,a.FMaterialID,a.FNUMBER,a.FNAME,FAPPROVEDATE2 + + --SELECT * FROM #XiaoShouChengBen + + + DECLARE cursor_name CURSOR FOR + SELECT F_XM,months,years + FROM #T_YuSuanShiJiLiRunEntity + -- 2. α + OPEN cursor_name; + DECLARE @rowId INT = 0,@F_XM NVARCHAR(500),@months INT,@years INT , + @amount DECIMAL(18, 4) = 0; + -- 3. ѭȡ + + FETCH NEXT FROM cursor_name + INTO @F_XM , + @months , + @years + + WHILE @@FETCH_STATUS = 0 + BEGIN + IF(@F_XM='Ӫҵ') + BEGIN + --Ӫҵ룺ȡտϽʵʽȡһ + UPDATE #T_YuSuanShiJiLiRunEntity SET F_BQSJJE=(SELECT SUM(FRECAMOUNT) FROM T_AR_RECEIVEBILL bb WHERE bb.FDATE>=@begintime AND bb.FDATE < @endtime AND bb.FDOCUMENTSTATUS='C' ) + ,F_BNSJJE=(SELECT SUM(FRECAMOUNT) FROM T_AR_RECEIVEBILL bb WHERE bb.FDATE>=@yearBeginTime AND bb.FDATE < @endtime AND bb.FDOCUMENTSTATUS='C' ) + WHERE F_XM=@F_XM + end + IF(@F_XM='Ӫҵɱ') + BEGIN + -- ӪҵɱϹѼ + UPDATE #T_YuSuanShiJiLiRunEntity SET F_BQSJJE=ISNULL((SELECT SUM(FAMOUNT_LC) FROM #XiaoShouChengBen bb WHERE bb.FAPPROVEDATE2>=@begintime AND bb.FAPPROVEDATE2 < @endtime ),0) + -ISNULL((SELECT SUM(FAMOUNT_LC) FROM #TuiHuoChengBen bb WHERE bb.FAPPROVEDATE2>=@begintime AND bb.FAPPROVEDATE2 < @endtime ),0) + ,F_BNSJJE=ISNULL((SELECT SUM(FAMOUNT_LC) FROM #XiaoShouChengBen bb WHERE 1=1 ),0) - + ISNULL((SELECT SUM(FAMOUNT_LC) FROM #TuiHuoChengBen bb WHERE 1=1 ),0) + WHERE F_XM=@F_XM + END + + IF(@F_XM='ֱӲ') + BEGIN + --ֱӲϣɱʵʽ-ȡһ + UPDATE #T_YuSuanShiJiLiRunEntity SET F_BQSJJE=ISNULL((SELECT SUM(FAMOUNT_LC) FROM #XiaoShouChengBen bb WHERE bb.FAPPROVEDATE2>=@begintime AND bb.FAPPROVEDATE2 < @endtime AND bb.FNAME='ϳɱ' ),0) + -ISNULL((SELECT SUM(FAMOUNT_LC) FROM #TuiHuoChengBen bb WHERE bb.FAPPROVEDATE2>=@begintime AND bb.FAPPROVEDATE2 < @endtime AND bb.FNAME='ϳɱ' ),0) + ,F_BNSJJE=ISNULL((SELECT SUM(FAMOUNT_LC) FROM #XiaoShouChengBen bb WHERE bb.FNAME='ϳɱ' ),0) - + ISNULL((SELECT SUM(FAMOUNT_LC) FROM #TuiHuoChengBen bb WHERE bb.FNAME='ϳɱ' ),0) + WHERE F_XM=@F_XM + end + + IF(@F_XM='ֱ˹') + BEGIN + -- ֱ˹ɱʵʽ-ȡһ + UPDATE #T_YuSuanShiJiLiRunEntity SET F_BQSJJE=ISNULL((SELECT SUM(FAMOUNT_LC) FROM #XiaoShouChengBen bb WHERE bb.FAPPROVEDATE2>=@begintime AND bb.FAPPROVEDATE2 < @endtime AND bb.FNAME IN ('','ίӹ') ),0) + -ISNULL((SELECT SUM(FAMOUNT_LC) FROM #TuiHuoChengBen bb WHERE bb.FAPPROVEDATE2>=@begintime AND bb.FAPPROVEDATE2 < @endtime AND bb.FNAME IN ('','ίӹ') ),0) + ,F_BNSJJE=ISNULL((SELECT SUM(FAMOUNT_LC) FROM #XiaoShouChengBen bb WHERE bb.FNAME IN ('','ίӹ') ),0) - + ISNULL((SELECT SUM(FAMOUNT_LC) FROM #TuiHuoChengBen bb WHERE bb.FNAME IN ('','ίӹ') ),0) + WHERE F_XM=@F_XM + END + + IF(@F_XM='') + BEGIN + -- ãɱʵʽ-ȡһ + UPDATE #T_YuSuanShiJiLiRunEntity SET F_BQSJJE=ISNULL((SELECT SUM(FAMOUNT_LC) FROM #XiaoShouChengBen bb WHERE bb.FAPPROVEDATE2>=@begintime AND bb.FAPPROVEDATE2 < @endtime AND bb.FNAME='' ),0) + -ISNULL((SELECT SUM(FAMOUNT_LC) FROM #TuiHuoChengBen bb WHERE bb.FAPPROVEDATE2>=@begintime AND bb.FAPPROVEDATE2 < @endtime AND bb.FNAME='' ),0) + ,F_BNSJJE=ISNULL((SELECT SUM(FAMOUNT_LC) FROM #XiaoShouChengBen bb WHERE bb.FNAME='' ),0) - + ISNULL((SELECT SUM(FAMOUNT_LC) FROM #TuiHuoChengBen bb WHERE bb.FNAME='' ),0) + WHERE F_XM=@F_XM + END + + + IF(@F_XM='') + BEGIN + -- ʣ-ʱڽ跽 + UPDATE #T_YuSuanShiJiLiRunEntity SET F_BQSJJE=( SELECT SUM(FDebit) AS FDebit FROM T_GL_BALANCE + WHERE FYear=@years AND FPeriod=@FStartMonth AND FDETAILID=0 AND FCURRENCYID=1 + AND FAccountID IN (SELECT b.F_KEMU2 FROM F_XMKMDetail a + LEFT JOIN F_KeMu2 b ON a.FEntryID=B.FEntryID + WHERE a.F_XM=@F_XM)) + ,F_BNSJJE=( SELECT SUM(FYtdDebitFor) AS FDebit FROM T_GL_BALANCE + WHERE FYear=@years AND FPeriod=@FStartMonth AND FDETAILID=0 AND FCURRENCYID=1 + AND FAccountID IN (SELECT b.F_KEMU2 FROM F_XMKMDetail a + LEFT JOIN F_KeMu2 b ON a.FEntryID=B.FEntryID + WHERE a.F_XM=@F_XM)) + WHERE F_XM=@F_XM + UPDATE #T_YuSuanShiJiLiRunEntity SET F_BQSJJE=bbb.F_BQSJJE-#T_YuSuanShiJiLiRunEntity.F_BQSJJE,F_BNSJJE=bbb.F_BNSJJE-#T_YuSuanShiJiLiRunEntity.F_BNSJJE + FROM (SELECT F_BQSJJE ,F_BNSJJE FROM #T_YuSuanShiJiLiRunEntity bb WHERE bb.F_XM='') bbb + WHERE F_XM=@F_XM + + SELECT @anmountMonth=@anmountMonth+F_BQSJJE ,@anmountYear=@anmountYear+F_BNSJJE FROM #T_YuSuanShiJiLiRunEntity WHERE F_XM=@F_XM + end + + IF(@F_XM='ְ') + BEGIN + -- ְѣ-ְѱڽ跽 + UPDATE #T_YuSuanShiJiLiRunEntity SET F_BQSJJE=( SELECT SUM(FDebit) AS FDebit FROM T_GL_BALANCE + WHERE FYear=@years AND FPeriod=@FStartMonth AND FDETAILID=0 AND FCURRENCYID=1 + AND FAccountID IN (SELECT b.F_KEMU2 FROM F_XMKMDetail a + LEFT JOIN F_KeMu2 b ON a.FEntryID=B.FEntryID + WHERE a.F_XM=@F_XM)) + ,F_BNSJJE=( SELECT SUM(FYtdDebitFor) AS FDebit FROM T_GL_BALANCE + WHERE FYear=@years AND FPeriod=@FStartMonth AND FDETAILID=0 AND FCURRENCYID=1 + AND FAccountID IN (SELECT b.F_KEMU2 FROM F_XMKMDetail a + LEFT JOIN F_KeMu2 b ON a.FEntryID=B.FEntryID + WHERE a.F_XM=@F_XM)) + WHERE F_XM=@F_XM + UPDATE #T_YuSuanShiJiLiRunEntity SET F_BQSJJE=bbb.F_BQSJJE-#T_YuSuanShiJiLiRunEntity.F_BQSJJE,F_BNSJJE=bbb.F_BNSJJE-#T_YuSuanShiJiLiRunEntity.F_BNSJJE + FROM (SELECT F_BQSJJE ,F_BNSJJE FROM #T_YuSuanShiJiLiRunEntity bb WHERE bb.F_XM='') bbb + WHERE F_XM=@F_XM + + SELECT @anmountMonth=@anmountMonth+F_BQSJJE ,@anmountYear=@anmountYear+F_BNSJJE FROM #T_YuSuanShiJiLiRunEntity WHERE F_XM=@F_XM + END + + IF(@F_XM LIKE '%籣%' AND @F_XM LIKE '%%' ) + BEGIN + -- 籣-ס/ϱ/ҽƱ/ʧҵ/ҽ/˱Ŀڽ跽ϼ + UPDATE #T_YuSuanShiJiLiRunEntity SET F_BQSJJE=( SELECT SUM(FDebit) AS FDebit FROM T_GL_BALANCE + WHERE FYear=@years AND FPeriod=@FStartMonth AND FDETAILID=0 AND FCURRENCYID=1 + AND FAccountID IN (SELECT b.F_KEMU2 FROM F_XMKMDetail a + LEFT JOIN F_KeMu2 b ON a.FEntryID=B.FEntryID + WHERE a.F_XM=@F_XM)) + ,F_BNSJJE=( SELECT SUM(FYtdDebitFor) AS FDebit FROM T_GL_BALANCE + WHERE FYear=@years AND FPeriod=@FStartMonth AND FDETAILID=0 AND FCURRENCYID=1 + AND FAccountID IN (SELECT b.F_KEMU2 FROM F_XMKMDetail a + LEFT JOIN F_KeMu2 b ON a.FEntryID=B.FEntryID + WHERE a.F_XM=@F_XM)) + WHERE F_XM=@F_XM + UPDATE #T_YuSuanShiJiLiRunEntity SET F_BQSJJE=bbb.F_BQSJJE-#T_YuSuanShiJiLiRunEntity.F_BQSJJE,F_BNSJJE=bbb.F_BNSJJE-#T_YuSuanShiJiLiRunEntity.F_BNSJJE + FROM (SELECT F_BQSJJE ,F_BNSJJE FROM #T_YuSuanShiJiLiRunEntity bb WHERE bb.F_XM='') bbb + WHERE F_XM=@F_XM + + SELECT @anmountMonth=@anmountMonth+F_BQSJJE ,@anmountYear=@anmountYear+F_BNSJJE FROM #T_YuSuanShiJiLiRunEntity WHERE F_XM=@F_XM + END + + IF(@F_XM ='' ) + BEGIN + -- -Ȿڽ跽 + UPDATE #T_YuSuanShiJiLiRunEntity SET F_BQSJJE=( SELECT SUM(FDebit) AS FDebit FROM T_GL_BALANCE + WHERE FYear=@years AND FPeriod=@FStartMonth AND FDETAILID=0 AND FCURRENCYID=1 + AND FAccountID IN (SELECT b.F_KEMU2 FROM F_XMKMDetail a + LEFT JOIN F_KeMu2 b ON a.FEntryID=B.FEntryID + WHERE a.F_XM=@F_XM)) + ,F_BNSJJE=( SELECT SUM(FYtdDebitFor) AS FDebit FROM T_GL_BALANCE + WHERE FYear=@years AND FPeriod=@FStartMonth AND FDETAILID=0 AND FCURRENCYID=1 + AND FAccountID IN (SELECT b.F_KEMU2 FROM F_XMKMDetail a + LEFT JOIN F_KeMu2 b ON a.FEntryID=B.FEntryID + WHERE a.F_XM=@F_XM)) + WHERE F_XM=@F_XM + UPDATE #T_YuSuanShiJiLiRunEntity SET F_BQSJJE=bbb.F_BQSJJE-#T_YuSuanShiJiLiRunEntity.F_BQSJJE,F_BNSJJE=bbb.F_BNSJJE-#T_YuSuanShiJiLiRunEntity.F_BNSJJE + FROM (SELECT F_BQSJJE ,F_BNSJJE FROM #T_YuSuanShiJiLiRunEntity bb WHERE bb.F_XM='') bbb + WHERE F_XM=@F_XM + + SELECT @anmountMonth=@anmountMonth+F_BQSJJE ,@anmountYear=@anmountYear+F_BNSJJE FROM #T_YuSuanShiJiLiRunEntity WHERE F_XM=@F_XM + END + + IF(@F_XM ='ˮ' ) + BEGIN + -- ˮѣ-ˮѱڽ跽 + UPDATE #T_YuSuanShiJiLiRunEntity SET F_BQSJJE=( SELECT SUM(FDebit) AS FDebit FROM T_GL_BALANCE + WHERE FYear=@years AND FPeriod=@FStartMonth AND FDETAILID=0 AND FCURRENCYID=1 + AND FAccountID IN (SELECT b.F_KEMU2 FROM F_XMKMDetail a + LEFT JOIN F_KeMu2 b ON a.FEntryID=B.FEntryID + WHERE a.F_XM=@F_XM)) + ,F_BNSJJE=( SELECT SUM(FYtdDebitFor) AS FDebit FROM T_GL_BALANCE + WHERE FYear=@years AND FPeriod=@FStartMonth AND FDETAILID=0 AND FCURRENCYID=1 + AND FAccountID IN (SELECT b.F_KEMU2 FROM F_XMKMDetail a + LEFT JOIN F_KeMu2 b ON a.FEntryID=B.FEntryID + WHERE a.F_XM=@F_XM)) + WHERE F_XM=@F_XM + UPDATE #T_YuSuanShiJiLiRunEntity SET F_BQSJJE=bbb.F_BQSJJE-#T_YuSuanShiJiLiRunEntity.F_BQSJJE,F_BNSJJE=bbb.F_BNSJJE-#T_YuSuanShiJiLiRunEntity.F_BNSJJE + FROM (SELECT F_BQSJJE ,F_BNSJJE FROM #T_YuSuanShiJiLiRunEntity bb WHERE bb.F_XM='') bbb + WHERE F_XM=@F_XM + + SELECT @anmountMonth=@anmountMonth+F_BQSJJE ,@anmountYear=@anmountYear+F_BNSJJE FROM #T_YuSuanShiJiLiRunEntity WHERE F_XM=@F_XM + END + + IF(@F_XM ='' ) + BEGIN + -- ģ-ıڽ跽 + UPDATE #T_YuSuanShiJiLiRunEntity SET F_BQSJJE=( SELECT SUM(FDebit) AS FDebit FROM T_GL_BALANCE + WHERE FYear=@years AND FPeriod=@FStartMonth AND FDETAILID=0 AND FCURRENCYID=1 + AND FAccountID IN (SELECT b.F_KEMU2 FROM F_XMKMDetail a + LEFT JOIN F_KeMu2 b ON a.FEntryID=B.FEntryID + WHERE a.F_XM=@F_XM)) + ,F_BNSJJE=( SELECT SUM(FYtdDebitFor) AS FDebit FROM T_GL_BALANCE + WHERE FYear=@years AND FPeriod=@FStartMonth AND FDETAILID=0 AND FCURRENCYID=1 + AND FAccountID IN (SELECT b.F_KEMU2 FROM F_XMKMDetail a + LEFT JOIN F_KeMu2 b ON a.FEntryID=B.FEntryID + WHERE a.F_XM=@F_XM)) + WHERE F_XM=@F_XM + UPDATE #T_YuSuanShiJiLiRunEntity SET F_BQSJJE=bbb.F_BQSJJE-#T_YuSuanShiJiLiRunEntity.F_BQSJJE,F_BNSJJE=bbb.F_BNSJJE-#T_YuSuanShiJiLiRunEntity.F_BNSJJE + FROM (SELECT F_BQSJJE ,F_BNSJJE FROM #T_YuSuanShiJiLiRunEntity bb WHERE bb.F_XM='') bbb + WHERE F_XM=@F_XM + + SELECT @anmountMonth=@anmountMonth+F_BQSJJE ,@anmountYear=@anmountYear+F_BNSJJE FROM #T_YuSuanShiJiLiRunEntity WHERE F_XM=@F_XM + END + + IF(@F_XM LIKE '%̯%' AND @F_XM LIKE '%۾%' ) + BEGIN + --̯۾ɣ-ڴ̯̯/ʲ̯/۾ɷĿڽ跽ϼ + UPDATE #T_YuSuanShiJiLiRunEntity SET F_BQSJJE=( SELECT SUM(FDebit) AS FDebit FROM T_GL_BALANCE + WHERE FYear=@years AND FPeriod=@FStartMonth AND FDETAILID=0 AND FCURRENCYID=1 + AND FAccountID IN (SELECT b.F_KEMU2 FROM F_XMKMDetail a + LEFT JOIN F_KeMu2 b ON a.FEntryID=B.FEntryID + WHERE a.F_XM=@F_XM)) + ,F_BNSJJE=( SELECT SUM(FYtdDebitFor) AS FDebit FROM T_GL_BALANCE + WHERE FYear=@years AND FPeriod=@FStartMonth AND FDETAILID=0 AND FCURRENCYID=1 + AND FAccountID IN (SELECT b.F_KEMU2 FROM F_XMKMDetail a + LEFT JOIN F_KeMu2 b ON a.FEntryID=B.FEntryID + WHERE a.F_XM=@F_XM)) + WHERE F_XM=@F_XM + UPDATE #T_YuSuanShiJiLiRunEntity SET F_BQSJJE=bbb.F_BQSJJE-#T_YuSuanShiJiLiRunEntity.F_BQSJJE,F_BNSJJE=bbb.F_BNSJJE-#T_YuSuanShiJiLiRunEntity.F_BNSJJE + FROM (SELECT F_BQSJJE ,F_BNSJJE FROM #T_YuSuanShiJiLiRunEntity bb WHERE bb.F_XM='') bbb + WHERE F_XM=@F_XM + + SELECT @anmountMonth=@anmountMonth+F_BQSJJE ,@anmountYear=@anmountYear+F_BNSJJE FROM #T_YuSuanShiJiLiRunEntity WHERE F_XM=@F_XM + END + + IF(@F_XM ='' ) + BEGIN + --üȥ֮ + UPDATE #T_YuSuanShiJiLiRunEntity SET F_BQSJJE=@anmountMonth + ,F_BNSJJE=@anmountYear + WHERE F_XM=@F_XM + UPDATE #T_YuSuanShiJiLiRunEntity SET F_BQSJJE=bbb.F_BQSJJE-#T_YuSuanShiJiLiRunEntity.F_BQSJJE,F_BNSJJE=bbb.F_BNSJJE-#T_YuSuanShiJiLiRunEntity.F_BNSJJE + FROM (SELECT F_BQSJJE ,F_BNSJJE FROM #T_YuSuanShiJiLiRunEntity bb WHERE bb.F_XM='') bbb + WHERE F_XM=@F_XM + END + + IF(@F_XM LIKE '%ë%' AND @F_XM not LIKE '%ë%' ) + BEGIN + --ëӪҵȥӪҵɱ + UPDATE #T_YuSuanShiJiLiRunEntity SET F_BQSJJE=(SELECT F_BQSJJE FROM #T_YuSuanShiJiLiRunEntity bb WHERE bb.F_XM='Ӫҵ')-(SELECT F_BQSJJE FROM #T_YuSuanShiJiLiRunEntity bb WHERE bb.F_XM='Ӫҵɱ') + ,F_BNSJJE=(SELECT F_BNSJJE FROM #T_YuSuanShiJiLiRunEntity bb WHERE bb.F_XM='Ӫҵ')-(SELECT F_BNSJJE FROM #T_YuSuanShiJiLiRunEntity bb WHERE bb.F_XM='Ӫҵɱ') + WHERE F_XM=@F_XM + END + + IF(@F_XM LIKE '%ë%' ) + BEGIN + --ëʣë/Ӫҵ룬ٷֱȺ2λС롣 + DECLARE @maoli DECIMAL(18,2),@shouRu DECIMAL(18,2),@maoliY DECIMAL(18,2),@shouRuY DECIMAL(18,2),@lvM DECIMAL(18,4)=0,@lvY DECIMAL(18,4)=0; + SELECT @maoli=(SELECT F_BQSJJE FROM #T_YuSuanShiJiLiRunEntity bb WHERE bb.F_XM LIKE '%ë%' AND bb.F_XM not LIKE '%ë%' ),@maoliY=(SELECT F_BQSJJE FROM #T_YuSuanShiJiLiRunEntity bb WHERE bb.F_XM LIKE '%ë%' AND bb.F_XM not LIKE '%ë%' ) + ,@shouRu=(SELECT F_BQSJJE FROM #T_YuSuanShiJiLiRunEntity bb WHERE bb.F_XM='Ӫҵ') + ,@shouRuY=(SELECT F_BNSJJE FROM #T_YuSuanShiJiLiRunEntity bb WHERE bb.F_XM='Ӫҵ') + IF(@shouRu<>0) + begin + SET @lvM=@maoli/@shouRu + + END + + IF(@shouRuY<>0) + begin + SET @lvY=@maoliY/@shouRu + END + + UPDATE #T_YuSuanShiJiLiRunEntity SET F_BQSJJE=@lvM,F_BNSJJE=@lvY + WHERE F_XM=@F_XM + END + + + IF(@F_XM ='˰𼰸' ) + BEGIN + --˰𼰸ӣӪҵ˰𼰸ӱڽ跽 + UPDATE #T_YuSuanShiJiLiRunEntity SET F_BQSJJE=( SELECT SUM(FDebit) AS FDebit FROM T_GL_BALANCE + WHERE FYear=@years AND FPeriod=@FStartMonth AND FDETAILID=0 AND FCURRENCYID=1 + AND FAccountID IN (SELECT b.F_KEMU2 FROM F_XMKMDetail a + LEFT JOIN F_KeMu2 b ON a.FEntryID=B.FEntryID + WHERE a.F_XM=@F_XM)) + ,F_BNSJJE=( SELECT SUM(FYtdDebitFor) AS FDebit FROM T_GL_BALANCE + WHERE FYear=@years AND FPeriod=@FStartMonth AND FDETAILID=0 AND FCURRENCYID=1 + AND FAccountID IN (SELECT b.F_KEMU2 FROM F_XMKMDetail a + LEFT JOIN F_KeMu2 b ON a.FEntryID=B.FEntryID + WHERE a.F_XM=@F_XM)) + WHERE F_XM=@F_XM + END + + IF(@F_XM ='۷' ) + BEGIN + --۷ã۷ñڽ跽 + UPDATE #T_YuSuanShiJiLiRunEntity SET F_BQSJJE=( SELECT SUM(FDebit) AS FDebit FROM T_GL_BALANCE + WHERE FYear=@years AND FPeriod=@FStartMonth AND FDETAILID=0 AND FCURRENCYID=1 + AND FAccountID IN (SELECT b.F_KEMU2 FROM F_XMKMDetail a + LEFT JOIN F_KeMu2 b ON a.FEntryID=B.FEntryID + WHERE a.F_XM=@F_XM)) + ,F_BNSJJE=( SELECT SUM(FYtdDebitFor) AS FDebit FROM T_GL_BALANCE + WHERE FYear=@years AND FPeriod=@FStartMonth AND FDETAILID=0 AND FCURRENCYID=1 + AND FAccountID IN (SELECT b.F_KEMU2 FROM F_XMKMDetail a + LEFT JOIN F_KeMu2 b ON a.FEntryID=B.FEntryID + WHERE a.F_XM=@F_XM)) + WHERE F_XM=@F_XM + END + + IF(@F_XM ='' ) + BEGIN + --ãñڽ跽ܺϼƼȥ(-о)ڽ跽 + UPDATE #T_YuSuanShiJiLiRunEntity SET F_BQSJJE=( SELECT SUM(FDebit) AS FDebit FROM T_GL_BALANCE + WHERE FYear=@years AND FPeriod=@FStartMonth AND FDETAILID=0 AND FCURRENCYID=1 + AND FAccountID IN (SELECT b.F_KEMU2 FROM F_XMKMDetail a + LEFT JOIN F_KeMu2 b ON a.FEntryID=B.FEntryID + WHERE a.F_XM=@F_XM)) + ,F_BNSJJE=( SELECT SUM(FYtdDebitFor) AS FDebit FROM T_GL_BALANCE + WHERE FYear=@years AND FPeriod=@FStartMonth AND FDETAILID=0 AND FCURRENCYID=1 + AND FAccountID IN (SELECT b.F_KEMU2 FROM F_XMKMDetail a + LEFT JOIN F_KeMu2 b ON a.FEntryID=B.FEntryID + WHERE a.F_XM=@F_XM)) + WHERE F_XM=@F_XM + + UPDATE #T_YuSuanShiJiLiRunEntity SET F_BQSJJE=F_BQSJJE-( SELECT SUM(FDebit) AS FDebit FROM T_GL_BALANCE + WHERE FYear=@years AND FPeriod=@FStartMonth AND FDETAILID=0 AND FCURRENCYID=1 + AND FAccountID IN (SELECT b.F_KEMU2 FROM F_XMKMDetail a + LEFT JOIN F_KeMu2 b ON a.FEntryID=B.FEntryID + WHERE a.F_XM='з')) + ,F_BNSJJE=F_BNSJJE-( SELECT SUM(FYtdDebitFor) AS FDebit FROM T_GL_BALANCE + WHERE FYear=@years AND FPeriod=@FStartMonth AND FDETAILID=0 AND FCURRENCYID=1 + AND FAccountID IN (SELECT b.F_KEMU2 FROM F_XMKMDetail a + LEFT JOIN F_KeMu2 b ON a.FEntryID=B.FEntryID + WHERE a.F_XM='з')) + WHERE F_XM=@F_XM + END + + IF(@F_XM ='з' ) + BEGIN + --ãñڽ跽ܺϼƼȥ(-о)ڽ跽 + UPDATE #T_YuSuanShiJiLiRunEntity SET F_BQSJJE=( SELECT SUM(FDebit) AS FDebit FROM T_GL_BALANCE + WHERE FYear=@years AND FPeriod=@FStartMonth AND FDETAILID=0 AND FCURRENCYID=1 + AND FAccountID IN (SELECT b.F_KEMU2 FROM F_XMKMDetail a + LEFT JOIN F_KeMu2 b ON a.FEntryID=B.FEntryID + WHERE a.F_XM=@F_XM)) + ,F_BNSJJE=( SELECT SUM(FYtdDebitFor) AS FDebit FROM T_GL_BALANCE + WHERE FYear=@years AND FPeriod=@FStartMonth AND FDETAILID=0 AND FCURRENCYID=1 + AND FAccountID IN (SELECT b.F_KEMU2 FROM F_XMKMDetail a + LEFT JOIN F_KeMu2 b ON a.FEntryID=B.FEntryID + WHERE a.F_XM=@F_XM)) + WHERE F_XM=@F_XM + END + + + + IF(@F_XM LIKE '%Ӫ%' ) + BEGIN + --Ӫë-˰𼰸-۷--з + UPDATE #T_YuSuanShiJiLiRunEntity SET F_BQSJJE=(SELECT F_BQSJJE FROM #T_YuSuanShiJiLiRunEntity bb WHERE bb.F_XM LIKE '%ë%' AND bb.F_XM not LIKE '%ë%' )-(SELECT F_BQSJJE FROM #T_YuSuanShiJiLiRunEntity bb WHERE bb.F_XM='˰𼰸') + -(SELECT F_BQSJJE FROM #T_YuSuanShiJiLiRunEntity bb WHERE bb.F_XM='۷') -(SELECT F_BQSJJE FROM #T_YuSuanShiJiLiRunEntity bb WHERE bb.F_XM='') -(SELECT F_BQSJJE FROM #T_YuSuanShiJiLiRunEntity bb WHERE bb.F_XM='з') + ,F_BNSJJE=(SELECT F_BNSJJE FROM #T_YuSuanShiJiLiRunEntity bb WHERE bb.F_XM LIKE '%ë%' AND bb.F_XM not LIKE '%ë%' )-(SELECT F_BNSJJE FROM #T_YuSuanShiJiLiRunEntity bb WHERE bb.F_XM='˰𼰸') + -(SELECT F_BNSJJE FROM #T_YuSuanShiJiLiRunEntity bb WHERE bb.F_XM='۷') -(SELECT F_BNSJJE FROM #T_YuSuanShiJiLiRunEntity bb WHERE bb.F_XM='') -(SELECT F_BNSJJE FROM #T_YuSuanShiJiLiRunEntity bb WHERE bb.F_XM='з') + WHERE F_XM=@F_XM + END + + + IF(@F_XM ='' ) + BEGIN + --ãñڽ跽 + UPDATE #T_YuSuanShiJiLiRunEntity SET F_BQSJJE=( SELECT SUM(FDebit) AS FDebit FROM T_GL_BALANCE + WHERE FYear=@years AND FPeriod=@FStartMonth AND FDETAILID=0 AND FCURRENCYID=1 + AND FAccountID IN (SELECT b.F_KEMU2 FROM F_XMKMDetail a + LEFT JOIN F_KeMu2 b ON a.FEntryID=B.FEntryID + WHERE a.F_XM=@F_XM)) + ,F_BNSJJE=( SELECT SUM(FYtdDebitFor) AS FDebit FROM T_GL_BALANCE + WHERE FYear=@years AND FPeriod=@FStartMonth AND FDETAILID=0 AND FCURRENCYID=1 + AND FAccountID IN (SELECT b.F_KEMU2 FROM F_XMKMDetail a + LEFT JOIN F_KeMu2 b ON a.FEntryID=B.FEntryID + WHERE a.F_XM=@F_XM)) + WHERE F_XM=@F_XM + END + + + IF(@F_XM ='()' ) + BEGIN + --()汾ڴ + UPDATE #T_YuSuanShiJiLiRunEntity SET F_BQSJJE=( SELECT SUM(FCredit) AS FDebit FROM T_GL_BALANCE + WHERE FYear=@years AND FPeriod=@FStartMonth AND FDETAILID=0 AND FCURRENCYID=1 + AND FAccountID IN (SELECT b.F_KEMU2 FROM F_XMKMDetail a + LEFT JOIN F_KeMu2 b ON a.FEntryID=B.FEntryID + WHERE a.F_XM=@F_XM)) + ,F_BNSJJE=( SELECT SUM(FYtdCredit) AS FDebit FROM T_GL_BALANCE + WHERE FYear=@years AND FPeriod=@FStartMonth AND FDETAILID=0 AND FCURRENCYID=1 + AND FAccountID IN (SELECT b.F_KEMU2 FROM F_XMKMDetail a + LEFT JOIN F_KeMu2 b ON a.FEntryID=B.FEntryID + WHERE a.F_XM=@F_XM)) + WHERE F_XM=@F_XM + END + + IF(@F_XM LIKE '%Ӫҵ%' ) + BEGIN + --ӣӪҵ룺Ӫҵ뱾ڴ + UPDATE #T_YuSuanShiJiLiRunEntity SET F_BQSJJE=( SELECT SUM(FCredit) AS FDebit FROM T_GL_BALANCE + WHERE FYear=@years AND FPeriod=@FStartMonth AND FDETAILID=0 AND FCURRENCYID=1 + AND FAccountID IN (SELECT b.F_KEMU2 FROM F_XMKMDetail a + LEFT JOIN F_KeMu2 b ON a.FEntryID=B.FEntryID + WHERE a.F_XM=@F_XM)) + ,F_BNSJJE=( SELECT SUM(FYtdCredit) AS FDebit FROM T_GL_BALANCE + WHERE FYear=@years AND FPeriod=@FStartMonth AND FDETAILID=0 AND FCURRENCYID=1 + AND FAccountID IN (SELECT b.F_KEMU2 FROM F_XMKMDetail a + LEFT JOIN F_KeMu2 b ON a.FEntryID=B.FEntryID + WHERE a.F_XM=@F_XM)) + WHERE F_XM=@F_XM + END + + IF(@F_XM LIKE '%Ӫҵ֧%' ) + BEGIN + --Ӫҵ֧Ӫҵ֧ڽ跽 + UPDATE #T_YuSuanShiJiLiRunEntity SET F_BQSJJE=( SELECT SUM(FDebit) AS FDebit FROM T_GL_BALANCE + WHERE FYear=@years AND FPeriod=@FStartMonth AND FDETAILID=0 AND FCURRENCYID=1 + AND FAccountID IN (SELECT b.F_KEMU2 FROM F_XMKMDetail a + LEFT JOIN F_KeMu2 b ON a.FEntryID=B.FEntryID + WHERE a.F_XM=@F_XM)) + ,F_BNSJJE=( SELECT SUM(FYtdDebitFor) AS FDebit FROM T_GL_BALANCE + WHERE FYear=@years AND FPeriod=@FStartMonth AND FDETAILID=0 AND FCURRENCYID=1 + AND FAccountID IN (SELECT b.F_KEMU2 FROM F_XMKMDetail a + LEFT JOIN F_KeMu2 b ON a.FEntryID=B.FEntryID + WHERE a.F_XM=@F_XM)) + WHERE F_XM=@F_XM + END + + + IF(@F_XM LIKE '%ܶ%' ) + BEGIN + ---ܶܶ"-"УӪ-++Ӫҵ-Ӫҵ֧ + UPDATE #T_YuSuanShiJiLiRunEntity SET F_BQSJJE=(SELECT F_BQSJJE FROM #T_YuSuanShiJiLiRunEntity bb WHERE bb.F_XM LIKE '%Ӫ%' )-(SELECT F_BQSJJE FROM #T_YuSuanShiJiLiRunEntity bb WHERE bb.F_XM='') + +(SELECT F_BQSJJE FROM #T_YuSuanShiJiLiRunEntity bb WHERE bb.F_XM='()') +(SELECT F_BQSJJE FROM #T_YuSuanShiJiLiRunEntity bb WHERE bb.F_XM LIKE '%Ӫҵ%') + -(SELECT F_BQSJJE FROM #T_YuSuanShiJiLiRunEntity bb WHERE bb.F_XM LIKE '%Ӫҵ֧%') + ,F_BNSJJE=(SELECT F_BNSJJE FROM #T_YuSuanShiJiLiRunEntity bb WHERE bb.F_XM LIKE '%Ӫ%' )-(SELECT F_BNSJJE FROM #T_YuSuanShiJiLiRunEntity bb WHERE bb.F_XM='') + +(SELECT F_BNSJJE FROM #T_YuSuanShiJiLiRunEntity bb WHERE bb.F_XM='()') +(SELECT F_BNSJJE FROM #T_YuSuanShiJiLiRunEntity bb WHERE bb.F_XM LIKE '%Ӫҵ%') + -(SELECT F_BNSJJE FROM #T_YuSuanShiJiLiRunEntity bb WHERE bb.F_XM LIKE '%Ӫҵ֧%') + WHERE F_XM=@F_XM + END + + IF(@F_XM LIKE '%˰%' ) + BEGIN + --˰ã˰ñڽ跽 + UPDATE #T_YuSuanShiJiLiRunEntity SET F_BQSJJE=( SELECT SUM(FDebit) AS FDebit FROM T_GL_BALANCE + WHERE FYear=@years AND FPeriod=@FStartMonth AND FDETAILID=0 AND FCURRENCYID=1 + AND FAccountID IN (SELECT b.F_KEMU2 FROM F_XMKMDetail a + LEFT JOIN F_KeMu2 b ON a.FEntryID=B.FEntryID + WHERE a.F_XM=@F_XM)) + ,F_BNSJJE=( SELECT SUM(FYtdDebitFor) AS FDebit FROM T_GL_BALANCE + WHERE FYear=@years AND FPeriod=@FStartMonth AND FDETAILID=0 AND FCURRENCYID=1 + AND FAccountID IN (SELECT b.F_KEMU2 FROM F_XMKMDetail a + LEFT JOIN F_KeMu2 b ON a.FEntryID=B.FEntryID + WHERE a.F_XM=@F_XM)) + WHERE F_XM=@F_XM + END + + IF(@F_XM LIKE '%%' ) + BEGIN + ---ġ󣨾"-"Уܶ-˰ + UPDATE #T_YuSuanShiJiLiRunEntity SET F_BQSJJE=(SELECT F_BQSJJE FROM #T_YuSuanShiJiLiRunEntity bb WHERE bb.F_XM LIKE '%ܶ%' ) + -(SELECT F_BQSJJE FROM #T_YuSuanShiJiLiRunEntity bb WHERE bb.F_XM LIKE '%˰%') + ,F_BNSJJE=(SELECT F_BNSJJE FROM #T_YuSuanShiJiLiRunEntity bb WHERE bb.F_XM LIKE '%ܶ%' ) + -(SELECT F_BNSJJE FROM #T_YuSuanShiJiLiRunEntity bb WHERE bb.F_XM LIKE '%˰%') + WHERE F_XM=@F_XM + END + + + + + -- ȡһ¼ + FETCH NEXT FROM cursor_name + INTO @F_XM , + @months , + @years + + END; + + -- 4. رα + CLOSE cursor_name; + + -- 5. ͷαԴ + DEALLOCATE cursor_name; + + UPDATE #T_YuSuanShiJiLiRunEntity SET F_BQYSSJJECY=BenQiYuSuan-F_BQSJJE,F_BNYSSJCY=F_BNYSJE-F_BNSJJE + + SELECT * FROM #T_YuSuanShiJiLiRunEntity + + SELECT @fid=fid FROM T_YuSuanShiJiLiRun_FenXi + WHERE F_Date=@begintime + + + + + DROP TABLE #T_YuSuanShiJiLiRunEntity + DROP TABLE #TuiHuoChengBen + DROP TABLE #XiaoShouChengBen +end + \ No newline at end of file