From 9317c0ce226975b0f26113308f28a58ad6c11793 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E7=8B=97=E8=9B=8B?= <12086832+li-goudan233@user.noreply.gitee.com> Date: Wed, 2 Apr 2025 11:11:13 +0800 Subject: [PATCH] 1 --- YingShouBaoBiao/YingShouQKBiao.cs | 205 ------------ YingShouBaoBiao/YingShouSBU.cs | 305 ++---------------- 派诺报表SQL文件/业绩排行榜插入数据SQL.sql | 2 +- 派诺报表SQL文件/应收情况概况表按SBU区分.sql | 12 + .../应收情况概况表按SBU区分创建表单.sql | 10 + .../应收情况概况表按SBU区分插入数据SQL.sql | 100 ++++++ 6 files changed, 154 insertions(+), 480 deletions(-) create mode 100644 派诺报表SQL文件/应收情况概况表按SBU区分.sql create mode 100644 派诺报表SQL文件/应收情况概况表按SBU区分创建表单.sql create mode 100644 派诺报表SQL文件/应收情况概况表按SBU区分插入数据SQL.sql diff --git a/YingShouBaoBiao/YingShouQKBiao.cs b/YingShouBaoBiao/YingShouQKBiao.cs index 84f8fe8..6f67664 100644 --- a/YingShouBaoBiao/YingShouQKBiao.cs +++ b/YingShouBaoBiao/YingShouQKBiao.cs @@ -135,212 +135,7 @@ namespace GZ_LTHReportForms.YingShouBiao SQL查询字符串,提取所需数据并将结果存入临时表 */ string sql = string.Format(@"/*dialect*/ -DECLARE @ThisDate VARCHAR(1000); -DECLARE @ResultDate VARCHAR(1000); --- 取上一年的年底日期 -SET @ResultDate = FORMAT(DATEADD(DAY, -1, DATEADD(YEAR, DATEDIFF(YEAR, 0, GETDATE()), 0)),'yyyy-MM-dd'); ---取当前日期 -SET @ThisDate = FORMAT(GETDATE(),'yyyy-MM-dd') -SELECT W.*,x.FNAME into #RecCond FROM T_SAL_ORDERPLAN W -INNER JOIN T_BD_RecCondition_L X on X.FID = W.F_RecConditionId - -SELECT D.FID,sum(b.fqty) AS 'FQTY',sum(E.fallamount) AS 'FAMOUNT' - INTO #SAL - FROM T_SAL_DELIVERYNOTICE A - INNER JOIN T_SAL_DELIVERYNOTICEENTRY B ON A.FID = B.FID - INNER JOIN T_SAL_DELIVERYNOTICEENTRY_F E ON E.FENTRYID = B.FENTRYID - INNER JOIN T_SAL_DELIVERYNOTICEENTRY_LK C ON C.FENTRYID = B.FENTRYID - INNER JOIN T_SAL_ORDERENTRY D ON D.FID = C.FSBILLID AND D.FENTRYID = C.FSID - WHERE A.FDOCUMENTSTATUS= 'C' - GROUP BY D.FID - - - SELECT D.FID,sum(b.fqty) AS 'FQTY',sum(E.fallamount) AS 'FAMOUNT' - INTO #RETURN - FROM T_SAL_RETURNNOTICE A - INNER JOIN T_SAL_RETURNNOTICEENTRY B ON A.FID = B.FID - INNER JOIN T_SAL_RETURNNOTICEENTRY_F E ON E.FENTRYID = B.FENTRYID - INNER JOIN T_SAL_RETURNNOTICEENTRY_LK C ON C.FENTRYID = B.FENTRYID - INNER JOIN T_SAL_ORDERENTRY D ON D.FID = C.FSBILLID AND D.FENTRYID = C.FSID - WHERE A.FDOCUMENTSTATUS= 'C' - GROUP BY D.FID - - - SELECT F.FID,sum(b.FREALQTY) AS 'FQTY',sum(G.FALLAMOUNT_LC) AS 'FAMOUNT' - INTO #OUTSTOCK - FROM T_SAL_OUTSTOCK A - INNER JOIN T_SAL_OUTSTOCKENTRY B ON A.FID = B.FID - INNER JOIN T_SAL_OUTSTOCKENTRY_F G ON G.FENTRYID = B.FENTRYID - INNER JOIN T_SAL_OUTSTOCKENTRY_LK C ON C.FENTRYID = B.FENTRYID - INNER JOIN T_SAL_DELIVERYNOTICEENTRY D ON D.FID = C.FSBILLID AND D.FENTRYID = C.FSID - INNER JOIN T_SAL_DELIVERYNOTICEENTRY_LK E ON E.FENTRYID = D.FENTRYID - INNER JOIN T_SAL_ORDERENTRY F ON F.FID = E.FSBILLID AND F.FENTRYID = E.FSID - WHERE A.FDOCUMENTSTATUS= 'C' - GROUP BY F.FID - - SELECT F.FID,sum(b.FREALQTY) AS 'FQTY',sum(G.FALLAMOUNT_LC) AS 'FAMOUNT' - INTO #RETURNSTOCK - FROM T_SAL_RETURNSTOCK A - INNER JOIN T_SAL_RETURNSTOCKENTRY B ON A.FID = B.FID - INNER JOIN T_SAL_RETURNSTOCKENTRY_F G ON G.FENTRYID = B.FENTRYID - INNER JOIN T_SAL_RETURNSTOCKENTRY_LK C ON C.FENTRYID = B.FENTRYID - INNER JOIN T_SAL_RETURNNOTICEENTRY D ON D.FID = C.FSBILLID AND D.FENTRYID = C.FSID - INNER JOIN T_SAL_RETURNNOTICEENTRY_LK E ON E.FENTRYID = D.FENTRYID - INNER JOIN T_SAL_ORDERENTRY F ON F.FID = E.FSBILLID AND F.FENTRYID = E.FSID - WHERE A.FDOCUMENTSTATUS= 'C' - GROUP BY F.FID - - SELECT b.FORDERENTRYID as 'FENTRYID',sum(b.FPriceQty) AS 'FQTY',sum(b.FALLAMOUNT) AS 'FAMOUNT' - INTO #RECE - FROM t_AR_receivable A - INNER JOIN t_AR_receivableENTRY B ON A.FID = B.FID - WHERE A.FDOCUMENTSTATUS= 'C' - GROUP BY b.FORDERENTRYID - -SELECT -CASE WHEN ISNULL(O.FNAME,'') = ''THEN AC.区域 -ELSE ACC.区域 END AS 'SBU', -'' AS '本年度发货及验收额', --待定取数 - CASE WHEN ROW_NUMBER() OVER (PARTITION BY A.Fid,n.FSaleId,X.FNAME ORDER BY n.FSaleId,X.FNAME) != 1 THEN null - WHEN X.FNAME in ('预付款(仪表)','预付款(系统)') THEN null - WHEN X.FNAME in ('货到收款(仪表)','货到收款(系统)') AND DATEADD(day, W.F_DAY, CK.F_SFSIGNATURETIME) < GETDATE() AND W.FRECADVANCERATE = 100 THEN ISNULL(Q.累计发货金额,0)-ISNULL(v.累计退货金额,0) - WHEN X.FNAME in ('货到收款(仪表)','货到收款(系统)') AND DATEADD(day, W.F_DAY, CK.F_SFSIGNATURETIME) < GETDATE() THEN ISNULL(W.F_MBBA_Decimal_uky,0) - WHEN X.FNAME in ('货到票到收款(系统)','货到票到收款(仪表)') AND DATEADD(day, W.F_DAY,FP.F_DATE) < GETDATE() AND W.FRECADVANCERATE = 100 THEN ISNULL(Q.累计发货金额,0)-ISNULL(v.累计退货金额,0) - WHEN X.FNAME in ('货到票到收款(系统)','货到票到收款(仪表)') AND DATEADD(day, W.F_DAY,FP.F_DATE) < GETDATE() THEN ISNULL(W.F_MBBA_Decimal_uky,0) - WHEN X.FNAME in ('款到发货(仪表)','款到发货(系统)') AND DATEADD(day, W.F_DAY,Q.发货日期) < GETDATE() AND W.FRECADVANCERATE = 100 THEN ISNULL(Q.累计发货金额,0)-ISNULL(v.累计退货金额,0) - WHEN X.FNAME in ('款到发货(仪表)','款到发货(系统)') AND DATEADD(day, W.F_DAY,Q.发货日期) < GETDATE() THEN ISNULL(W.F_MBBA_Decimal_uky,0) - ELSE null--款到发货(仪表) - END AS '已到期应收账款', -convert(nvarchar(100), '') AS '1-6个月', -convert(nvarchar(100), '') AS '7-12个月', -convert(nvarchar(100), '') AS '13-18个月', -convert(nvarchar(100), '') AS '19个月以上', -'' AS '回款额(含子公司)', --待定核销功能完成 -'' AS '专责小组回款额', --待定取数 -'' AS '实际业绩额(含往年变更金额)',--待定取数逻辑 -'' AS '上年度应收额',--待定取数逻辑 -'' AS '专责小组应收额', -'' AS '回款率', -'' AS '预发货到期应收账款', -'' AS '预发货回款额', -'' AS '预发货回款率', -'' AS '回款目标', -'' AS '应收款上限', -'' AS '回款达标率' -,SUM(w.FRECADVANCERATE)OVER(PARTITION BY A.FID,N.FENTRYID ORDER BY W.FSEQ) as '收款比例汇总' -,case when F.FBILLALLAMOUNT_LC - ISNULL(v.累计退货金额,0)= 0 -THEN 0 -ELSE round(( isnull(ae.累计收款,0) - ISNULL(v.累计退货金额,0))/( F.FBILLALLAMOUNT_LC - ISNULL(v.累计退货金额,0)) ,2) -END AS '收款比例' -,ROUND( DATEDIFF(DAY,convert(nvarchar(10),dateadd(day,isnull(w.f_day,0) ,W.F_PMSDate),23),Getdate()) / 30,0) AS '账龄-月' -,case when ROUND( DATEDIFF(DAY,convert(nvarchar(10),dateadd(day,isnull(w.f_day,0) ,W.F_PMSDate),23),Getdate()) / 30,0) <= 6 AND ROUND( DATEDIFF(DAY,convert(nvarchar(10),dateadd(day,isnull(w.f_day,0) ,W.F_PMSDate),23),Getdate()) / 30,0) >=1 then '一到六个月' -when ROUND( DATEDIFF(DAY,convert(nvarchar(10),dateadd(day,isnull(w.f_day,0) ,W.F_PMSDate),23),Getdate()) / 30,0) <= 12 AND ROUND( DATEDIFF(DAY,convert(nvarchar(10),dateadd(day,isnull(w.f_day,0) ,W.F_PMSDate),23),Getdate()) / 30,0) >=7 then '七到十二个月' -when ROUND( DATEDIFF(DAY,convert(nvarchar(10),dateadd(day,isnull(w.f_day,0) ,W.F_PMSDate),23),Getdate()) / 30,0) <= 18 AND ROUND( DATEDIFF(DAY,convert(nvarchar(10),dateadd(day,isnull(w.f_day,0) ,W.F_PMSDate),23),Getdate()) / 30,0) >=13 then '十三到十八个月' -when ROUND( DATEDIFF(DAY,convert(nvarchar(10),dateadd(day,isnull(w.f_day,0) ,W.F_PMSDate),23),Getdate()) / 30,0) >= 19 then '十九个月以上' -end AS '账龄-阶段' -INTO #TEMP1 -FROM T_SAL_ORDER A --销售订单表头 - LEFT JOIN - (Select a2.FENTRYID,a2.FDATAVALUE From T_BAS_ASSISTANTDATAENTRY a1 JOIN T_BAS_ASSISTANTDATAENTRY_L a2 on a1.FENTRYID = a2.FENTRYID - Where a1.FID = '670cc977263353') B on A.F_ORDERCATEGORY = B.FENTRYID - --INNER JOIN T_SAL_orderentry b on a.FID = B.FID --销售订单表体 - INNER JOIN T_BD_CUSTOMER_L C ON C.FCUSTID= A.FCUSTID AND C.FLOCALEID= 2052 --客户附属表 - INNER JOIN T_SAL_ORDERFIN F ON F.FID = A.FID - INNER JOIN T_BD_CUSTOMER I ON I .FCUSTID = A.FCUSTID - INNER JOIN T_SAL_ORDERFIN J ON J.FID= A.FID - LEFT JOIN T_BAS_PREBDONE_L G ON G.FID = A.F_projectname AND G.FLocaleID =2052 - LEFT JOIN T_BAS_PREBDTHREE H ON H.FID = A.F_BON - lEFT JOIN V_ASSISTANTDATA K ON K.FENTRYID = I.FCompanyNature - lEFT JOIN V_BD_SALESMAN_L L ON L.fid = A.FSALERID - left JOIN T_PerformanceSharing M ON M.FSOURCEBILLNO = A.FBILLNO - left JOIN T_PerformanceSharingEntry N ON N.FID=M.FID - LEFT JOIN V_BD_SALESMAN_L O ON O.fid= N.FSALEID - LEFT JOIN V_ASSISTANTDATA P ON P.FENTRYID = I.F_CREDITCLASSIFICATION - LEFT JOIN T_SAL_OUTSTOCK CK on CK.F_CONTRACTNUMBER = A.F_CONTRACTNUMBER --销售出库单 - LEFT JOIN T_IV_SALESIC FP on FP.F_PAPERNUMBER = A.F_CONTRACTNUMBER --销售增值税专用发票 - --LEFT JOIN T_SAL_DELIVERYNOTICE FH on FH.F_PAPERCONTRACT = A.F_CONTRACTNUMBER --发货通知单 - LEFT JOIN - ( - SELECT F_Papercontract,MAX(CONVERT(NVARCHAR(10), A.FDATE,23)) AS '发货日期',SUM(B.FBILLALLAMOUNT_LC) AS '累计发货金额' FROM T_SAL_DELIVERYNOTICE A - INNER JOIN T_SAL_DELIVERYNOTICEFIN B ON A.FID =B.FID - WHERE A.FDOCUMENTSTATUS= 'C' - GROUP BY A.F_Papercontract - ) Q ON Q.F_PAPERCONTRACT = A.F_contractnumber --获取发货通知单最大的发货日期 - LEFT JOIN T_META_FORMENUMITEM R ON r.FVALUE = A.F_OrderType AND R.FID = 'bc2c1d77-0f4b-41d2-b61b-e29554c570d4' - LEFT JOIN T_META_FORMENUMITEM_L S ON S.FENUMID = R.FENUMID AND S.FLOCALEID = 2052 - LEFT JOIN - ( - SELECT F_Paper ,CONVERT(NVARCHAR(10), MAX(FDATE),23) AS '开票日期',CONVERT(NVARCHAR(10), - MAX(FDATE),23) AS '没有红色的开票日期' - FROM t_AR_receivable A - INNER JOIN T_AR_RECEIVABLEENTRY B ON A.FID = B.FID - WHERE A.FDOCUMENTSTATUS = 'C' AND A.FCancelStatus = 'A' - GROUP BY F_Paper - ) T ON T.F_PAPER = A.F_contractnumber - LEFT JOIN V_ASSISTANTDATA U ON U.FENTRYID = A.F_Ordercategory - LEFT JOIN - ( - SELECT F_contractnumber,MAX(CONVERT(NVARCHAR(10), A.FDATE,23)) AS '退货日期',SUM(B.FBILLALLAMOUNT_LC) AS '累计退货金额' FROM T_SAL_RETURNSTOCK A - INNER JOIN T_SAL_RETURNSTOCKFIN B ON A.FID =B.FID - WHERE A.FDOCUMENTSTATUS= 'C' - GROUP BY A.F_contractnumber - ) V ON V.F_contractnumber = A.F_contractnumber --获取销售退货单 - LEFT JOIN ERPTOHR.HYHRV3.dbo.v_erp_empinfo AC ON AC.名称=L.FNAME - LEFT JOIN ERPTOHR.HYHRV3.dbo.v_erp_empinfo ACC ON ACC.名称=O.FNAME - LEFT JOIN T_SAL_ORDERPLAN W ON W.FID= A.FID --收款计划 - LEFT JOIN T_BD_RecCondition_L X on X.FID = W.F_RecConditionId - LEFT JOIN #RecCond Y ON Y.FID =A.FID AND Y.FNAME LIKE '%质保金%' - LEFT JOIN (select distinct fid from #RecCond Z where Z.FNAME LIKE '%款到%') z on z.fid =a.fid - LEFT JOIN (select distinct fid from #RecCond AA where AA.FNAME LIKE '%协议%') AA on AA.fid =a.fid - LEFT JOIN T_ORG_ORGANIZATIONS_L asd on asd.FORGID = A.FSALEORGID - LEFT JOIN (SELECT distinct F_Papercontract FROM T_SAL_DELIVERYNOTICE WHERE F_SFYFH ='是') AB ON AB.F_PAPERCONTRACT = A.F_contractnumber - LEFT JOIN - ( - SELECT - F_Papercontract,CAST( sum(b.FALLAMOUNT) AS REAL) AS '发票总金额', - CAST (sum(CASE WHEN F_Papercontract = 'Y' THEN b.FALLAMOUNT ELSE 0 END ) AS REAL) AS '发票总金额(普票存财务)' - FROM t_AR_receivable A - INNER JOIN T_AR_RECEIVABLEFIN B ON A.FID = B.FID - GROUP BY F_Papercontract - ) AD ON AD.F_PAPERCONTRACT = A.F_contractnumber - LEFT JOIN - ( - SELECT a.F_Papercontract, - avg(d.FCURWRITTENOFFAMOUNT) as '累计收款' - - FROM t_AR_receivable A - INNER JOIN T_AR_RECEIVABLEENTRY E ON E.FID =A.FID - INNER JOIN T_AR_RECMacthLogENTRY B ON A.FBILLNO = B.FSRCBILLNO - INNER JOIN T_AR_RECMacthLog C ON C.FID = B.FID - INNER JOIN T_AR_RECMacthLogENTRY D ON D.FID = B.FID - AND D.FSOURCETYPE = '36cf265bd8c3452194ed9c83ec5e73d2' - WHERE - 1=1 - group by a.F_Papercontract - ) AE ON AE.F_Papercontract = A.F_contractnumber - WHERE 1=1 AND - A.FDOCUMENTSTATUS = 'C' - and (@FSaleOrgId = '' or asd.FNAME = @FSaleOrgId) - AND (@FEndDate = '' or A.FDATE<=@FEndDate) - AND (@FStartDate = '' or A.FDATE>=@FStartDate) - ORDER BY A.F_contractnumber - {1} -ORDER BY 'SBU' - -UPDATE #TEMP1 SET - [账龄-月] = 0 ,[账龄-阶段]='' - WHERE 收款比例汇总<=收款比例*100 - --- - -UPDATE #TEMP1 -SET [1-6个月]= case when [账龄-月] <> 0 AND [账龄-阶段]='一到六个月' AND 收款比例<收款比例汇总 then CONVERT(nvarchar(10), round( 收款比例汇总,2)-收款比例*100) else '' end, -[7-12个月]= case when [账龄-月] <> 0 AND [账龄-阶段]='七到十二个月' AND 收款比例<收款比例汇总 then CONVERT(nvarchar(10), round( 收款比例汇总,2)-收款比例*100) else '' end, -[13-18个月]=case when [账龄-月] <> 0 AND [账龄-阶段]='十三到十八个月' AND 收款比例<收款比例汇总 then CONVERT(nvarchar(10), round( 收款比例汇总,2)-收款比例*100) else '' end, -[19个月以上]=case when [账龄-月] <> 0 AND [账龄-阶段]='十九个月以上' AND 收款比例<收款比例汇总 then CONVERT(nvarchar(10), round( 收款比例汇总,2)-收款比例 *100) else '' end - -SELECT * INTO {0} FROM #TEMP1 ", tableName, Filter); //执行SQL并动态创建报表 DBUtils.ExecuteDynamicObject(this.Context, sql); diff --git a/YingShouBaoBiao/YingShouSBU.cs b/YingShouBaoBiao/YingShouSBU.cs index 1683c4e..2474188 100644 --- a/YingShouBaoBiao/YingShouSBU.cs +++ b/YingShouBaoBiao/YingShouSBU.cs @@ -89,13 +89,18 @@ namespace GZ_LTHReportForms.YingShouBaoBiao //设置单据列 public override ReportHeader GetReportHeaders(IRptParams filter) { + DynamicObject customFilter = filter.FilterParameter.CustomFilter; + //结束日期 + string FYear = (customFilter["F_EDate"] == null) ? DateTime.Now.Year.ToString() : Convert.ToDateTime( + customFilter["F_EDate"]).ToString("yyyy-MM"); + //创建表头对象 ReportHeader header = new ReportHeader(); header.AddChild("SBU", new LocaleValue("SBU", this.Context.UserLocale.LCID), SqlStorageType.Sqlvarchar); - header.AddChild("年底到期应收款额", new LocaleValue("期初到期应收额", this.Context.UserLocale.LCID), SqlStorageType.Sqlvarchar); - header.AddChild("年底到期应收款专责小组", new LocaleValue("其中:期初应收款专责小组", this.Context.UserLocale.LCID), SqlStorageType.Sqlvarchar); - header.AddChild("到期应收款额", new LocaleValue("本月到期应收额", this.Context.UserLocale.LCID), SqlStorageType.Sqlvarchar); - header.AddChild("应收款专责小组", new LocaleValue("其中:本月应收款专责小组", this.Context.UserLocale.LCID), SqlStorageType.Sqlvarchar); + header.AddChild("年初到期应收款额", new LocaleValue(FYear +"期初到期应收额", this.Context.UserLocale.LCID), SqlStorageType.Sqlvarchar); + header.AddChild("其中_年初应收款专责小组", new LocaleValue("其中:"+FYear+"期初应收款专责小组", this.Context.UserLocale.LCID), SqlStorageType.Sqlvarchar); + header.AddChild("本年到期应收款额", new LocaleValue(FYear+"到期应收额", this.Context.UserLocale.LCID), SqlStorageType.Sqlvarchar); + header.AddChild("其中_本年应收款专责小组", new LocaleValue("其中:"+FYear+"应收款专责小组", this.Context.UserLocale.LCID), SqlStorageType.Sqlvarchar); header.AddChild("占比", new LocaleValue("占比", this.Context.UserLocale.LCID), SqlStorageType.Sqlvarchar); header.AddChild("变化", new LocaleValue("变化", this.Context.UserLocale.LCID), SqlStorageType.Sqlvarchar); foreach(var item in header.GetChilds()) @@ -108,285 +113,37 @@ namespace GZ_LTHReportForms.YingShouBaoBiao //创建临时表 public override void BuilderReportSqlAndTempTable(IRptParams filter, string tableName) { - //获取过滤条件 - string Filter = GetFilterWhere(filter); - /* - 取数SQL - SQL查询字符串,提取所需数据并将结果存入临时表 - */ + base.BuilderReportSqlAndTempTable (filter, tableName); + DynamicObject customFilter = filter.FilterParameter.CustomFilter; + + //开始日期 + string FStrartDate = (customFilter["F_SDate"] == null) ? string.Empty : Convert.ToDateTime( + customFilter["F_SDate"]).ToString("yyyy-MM-dd"); + + //结束日期 + string FEndDate = (customFilter["F_EDate"] == null) ? string.Empty : Convert.ToDateTime( + customFilter["F_EDate"]).ToString("yyyy-MM-dd"); + string sql = String.Format(@"/*dialect*/ -DECLARE @ResultDate VARCHAR(1000); -DECLARE @ThisDate VARCHAR(1000); -DECLARE @SUMDQ DECIMAL(10, 2); - - --- 取上一年的年底日期 -SET @ResultDate = FORMAT(DATEADD(DAY, -1, DATEADD(YEAR, DATEDIFF(YEAR, 0, GETDATE()), 0)),'yyyy-MM-dd'); ---取当天日期 -SET @ThisDate = FORMAT(GETDATE(),'yyyy-MM-dd') - -SELECT W.*,x.FNAME into #RecCond FROM T_SAL_ORDERPLAN W -INNER JOIN T_BD_RecCondition_L X on X.FID = W.F_RecConditionId - -SELECT D.FID,sum(b.fqty) AS 'FQTY',sum(E.fallamount) AS 'FAMOUNT' - INTO #SAL - FROM T_SAL_DELIVERYNOTICE A - INNER JOIN T_SAL_DELIVERYNOTICEENTRY B ON A.FID = B.FID - INNER JOIN T_SAL_DELIVERYNOTICEENTRY_F E ON E.FENTRYID = B.FENTRYID - INNER JOIN T_SAL_DELIVERYNOTICEENTRY_LK C ON C.FENTRYID = B.FENTRYID - INNER JOIN T_SAL_ORDERENTRY D ON D.FID = C.FSBILLID AND D.FENTRYID = C.FSID - WHERE A.FDOCUMENTSTATUS= 'C' - GROUP BY D.FID - - - SELECT D.FID,sum(b.fqty) AS 'FQTY',sum(E.fallamount) AS 'FAMOUNT' - INTO #RETURN - FROM T_SAL_RETURNNOTICE A - INNER JOIN T_SAL_RETURNNOTICEENTRY B ON A.FID = B.FID - INNER JOIN T_SAL_RETURNNOTICEENTRY_F E ON E.FENTRYID = B.FENTRYID - INNER JOIN T_SAL_RETURNNOTICEENTRY_LK C ON C.FENTRYID = B.FENTRYID - INNER JOIN T_SAL_ORDERENTRY D ON D.FID = C.FSBILLID AND D.FENTRYID = C.FSID - WHERE A.FDOCUMENTSTATUS= 'C' - GROUP BY D.FID - - - SELECT F.FID,sum(b.FREALQTY) AS 'FQTY',sum(G.FALLAMOUNT_LC) AS 'FAMOUNT' - INTO #OUTSTOCK - FROM T_SAL_OUTSTOCK A - INNER JOIN T_SAL_OUTSTOCKENTRY B ON A.FID = B.FID - INNER JOIN T_SAL_OUTSTOCKENTRY_F G ON G.FENTRYID = B.FENTRYID - INNER JOIN T_SAL_OUTSTOCKENTRY_LK C ON C.FENTRYID = B.FENTRYID - INNER JOIN T_SAL_DELIVERYNOTICEENTRY D ON D.FID = C.FSBILLID AND D.FENTRYID = C.FSID - INNER JOIN T_SAL_DELIVERYNOTICEENTRY_LK E ON E.FENTRYID = D.FENTRYID - INNER JOIN T_SAL_ORDERENTRY F ON F.FID = E.FSBILLID AND F.FENTRYID = E.FSID - WHERE A.FDOCUMENTSTATUS= 'C' - GROUP BY F.FID - - SELECT F.FID,sum(b.FREALQTY) AS 'FQTY',sum(G.FALLAMOUNT_LC) AS 'FAMOUNT' - INTO #RETURNSTOCK - FROM T_SAL_RETURNSTOCK A - INNER JOIN T_SAL_RETURNSTOCKENTRY B ON A.FID = B.FID - INNER JOIN T_SAL_RETURNSTOCKENTRY_F G ON G.FENTRYID = B.FENTRYID - INNER JOIN T_SAL_RETURNSTOCKENTRY_LK C ON C.FENTRYID = B.FENTRYID - INNER JOIN T_SAL_RETURNNOTICEENTRY D ON D.FID = C.FSBILLID AND D.FENTRYID = C.FSID - INNER JOIN T_SAL_RETURNNOTICEENTRY_LK E ON E.FENTRYID = D.FENTRYID - INNER JOIN T_SAL_ORDERENTRY F ON F.FID = E.FSBILLID AND F.FENTRYID = E.FSID - WHERE A.FDOCUMENTSTATUS= 'C' - GROUP BY F.FID - - SELECT b.FORDERENTRYID as 'FENTRYID',sum(b.FPriceQty) AS 'FQTY',sum(b.FALLAMOUNT) AS 'FAMOUNT' - INTO #RECE - FROM t_AR_receivable A - INNER JOIN t_AR_receivableENTRY B ON A.FID = B.FID - WHERE A.FDOCUMENTSTATUS= 'C' - GROUP BY b.FORDERENTRYID - -SELECT -CASE WHEN ISNULL(O.FNAME,'') = '' THEN AC.区域 -ELSE ACC.区域 END AS 'SBU', -CASE WHEN ROW_NUMBER() OVER (PARTITION BY A.Fid,n.FSaleId,X.FNAME ORDER BY n.FSaleId,X.FNAME) != 1 THEN null - WHEN X.FNAME in ('预付款(仪表)','预付款(系统)') THEN null - WHEN X.FNAME in ('货到收款(仪表)','货到收款(系统)') AND DATEADD(day, W.F_DAY, CK.F_SFSIGNATURETIME) < @ResultDate AND W.FRECADVANCERATE = 100 THEN ISNULL(Q.累计发货金额,0)-ISNULL(v.累计退货金额,0) - WHEN X.FNAME in ('货到收款(仪表)','货到收款(系统)') AND DATEADD(day, W.F_DAY, CK.F_SFSIGNATURETIME) < @ResultDate THEN ISNULL(W.F_MBBA_Decimal_uky,0) - WHEN X.FNAME in ('货到票到收款(系统)','货到票到收款(仪表)') AND DATEADD(day, W.F_DAY,FP.F_DATE) < @ResultDate AND W.FRECADVANCERATE = 100 THEN ISNULL(Q.累计发货金额,0)-ISNULL(v.累计退货金额,0) - WHEN X.FNAME in ('货到票到收款(系统)','货到票到收款(仪表)') AND DATEADD(day, W.F_DAY,FP.F_DATE) < @ResultDate THEN ISNULL(W.F_MBBA_Decimal_uky,0) - WHEN X.FNAME in ('款到发货(仪表)','款到发货(系统)') AND DATEADD(day, W.F_DAY,Q.发货日期) < @ResultDate AND W.FRECADVANCERATE = 100 THEN ISNULL(Q.累计发货金额,0)-ISNULL(v.累计退货金额,0) - WHEN X.FNAME in ('款到发货(仪表)','款到发货(系统)') AND DATEADD(day, W.F_DAY,Q.发货日期) < @ResultDate THEN ISNULL(W.F_MBBA_Decimal_uky,0) - ELSE null--款到发货(仪表) - END AS '年底到期应收款额', -CASE WHEN ROW_NUMBER() OVER (PARTITION BY A.Fid,n.FSaleId,X.FNAME ORDER BY n.FSaleId,X.FNAME) != 1 THEN null - WHEN X.FNAME in ('预付款(仪表)','预付款(系统)') THEN null - WHEN X.FNAME in ('货到收款(仪表)','货到收款(系统)') AND isnull(ROUND( DATEDIFF(DAY,convert(nvarchar(10),dateadd(day,isnull(w.f_day,0) ,W.F_PMSDate),23),@ResultDate) / 30,0) ,0)>=6 AND W.FRECADVANCERATE = 100 THEN ISNULL(Q.累计发货金额,0)-ISNULL(v.累计退货金额,0) - WHEN X.FNAME in ('货到收款(仪表)','货到收款(系统)') AND isnull(ROUND( DATEDIFF(DAY,convert(nvarchar(10),dateadd(day,isnull(w.f_day,0) ,W.F_PMSDate),23),@ResultDate) / 30,0) ,0)>=6 THEN ISNULL(W.F_MBBA_Decimal_uky,0) - WHEN X.FNAME in ('货到票到收款(系统)','货到票到收款(仪表)') AND isnull(ROUND( DATEDIFF(DAY,convert(nvarchar(10),dateadd(day,isnull(w.f_day,0) ,W.F_PMSDate),23),@ResultDate) / 30,0) ,0)>=6 AND W.FRECADVANCERATE = 100 THEN ISNULL(Q.累计发货金额,0)-ISNULL(v.累计退货金额,0) - WHEN X.FNAME in ('货到票到收款(系统)','货到票到收款(仪表)') AND isnull(ROUND( DATEDIFF(DAY,convert(nvarchar(10),dateadd(day,isnull(w.f_day,0) ,W.F_PMSDate),23),@ResultDate) / 30,0) ,0)>=6 THEN ISNULL(W.F_MBBA_Decimal_uky,0) - WHEN X.FNAME in ('款到发货(仪表)','款到发货(系统)') AND isnull(ROUND( DATEDIFF(DAY,convert(nvarchar(10),dateadd(day,isnull(w.f_day,0) ,W.F_PMSDate),23),@ResultDate) / 30,0) ,0)>=6 AND W.FRECADVANCERATE = 100 THEN ISNULL(Q.累计发货金额,0)-ISNULL(v.累计退货金额,0) - WHEN X.FNAME in ('款到发货(仪表)','款到发货(系统)') AND isnull(ROUND( DATEDIFF(DAY,convert(nvarchar(10),dateadd(day,isnull(w.f_day,0) ,W.F_PMSDate),23),@ResultDate) / 30,0) ,0)>=6 THEN ISNULL(W.F_MBBA_Decimal_uky,0) - ELSE null--款到发货(仪表) - END AS '年底到期应收款专责小组', -CASE WHEN ROW_NUMBER() OVER (PARTITION BY A.Fid,n.FSaleId,X.FNAME ORDER BY n.FSaleId,X.FNAME) != 1 THEN null - WHEN X.FNAME in ('预付款(仪表)','预付款(系统)') THEN null - WHEN X.FNAME in ('货到收款(仪表)','货到收款(系统)') AND DATEADD(day, W.F_DAY, CK.F_SFSIGNATURETIME) < @ThisDate AND W.FRECADVANCERATE = 100 THEN ISNULL(Q.累计发货金额,0)-ISNULL(v.累计退货金额,0) - WHEN X.FNAME in ('货到收款(仪表)','货到收款(系统)') AND DATEADD(day, W.F_DAY, CK.F_SFSIGNATURETIME) < @ThisDate THEN ISNULL(W.F_MBBA_Decimal_uky,0) - WHEN X.FNAME in ('货到票到收款(系统)','货到票到收款(仪表)') AND DATEADD(day, W.F_DAY,FP.F_DATE) < @ThisDate AND W.FRECADVANCERATE = 100 THEN ISNULL(Q.累计发货金额,0)-ISNULL(v.累计退货金额,0) - WHEN X.FNAME in ('货到票到收款(系统)','货到票到收款(仪表)') AND DATEADD(day, W.F_DAY,FP.F_DATE) < @ThisDate THEN ISNULL(W.F_MBBA_Decimal_uky,0) - WHEN X.FNAME in ('款到发货(仪表)','款到发货(系统)') AND DATEADD(day, W.F_DAY,Q.发货日期) < @ThisDate AND W.FRECADVANCERATE = 100 THEN ISNULL(Q.累计发货金额,0)-ISNULL(v.累计退货金额,0) - WHEN X.FNAME in ('款到发货(仪表)','款到发货(系统)') AND DATEADD(day, W.F_DAY,Q.发货日期) < @ThisDate THEN ISNULL(W.F_MBBA_Decimal_uky,0) - ELSE null--款到发货(仪表) - END AS '到期应收款额', -CASE WHEN ROW_NUMBER() OVER (PARTITION BY A.Fid,n.FSaleId,X.FNAME ORDER BY n.FSaleId,X.FNAME) != 1 THEN null - WHEN X.FNAME in ('预付款(仪表)','预付款(系统)') THEN null - WHEN X.FNAME in ('货到收款(仪表)','货到收款(系统)') AND isnull(ROUND( DATEDIFF(DAY,convert(nvarchar(10),dateadd(day,isnull(w.f_day,0) ,W.F_PMSDate),23),@ThisDate) / 30,0) ,0)>=6 AND W.FRECADVANCERATE = 100 THEN ISNULL(Q.累计发货金额,0)-ISNULL(v.累计退货金额,0) - WHEN X.FNAME in ('货到收款(仪表)','货到收款(系统)') AND isnull(ROUND( DATEDIFF(DAY,convert(nvarchar(10),dateadd(day,isnull(w.f_day,0) ,W.F_PMSDate),23),@ThisDate) / 30,0) ,0)>=6 THEN ISNULL(W.F_MBBA_Decimal_uky,0) - WHEN X.FNAME in ('货到票到收款(系统)','货到票到收款(仪表)') AND isnull(ROUND( DATEDIFF(DAY,convert(nvarchar(10),dateadd(day,isnull(w.f_day,0) ,W.F_PMSDate),23),@ThisDate) / 30,0) ,0)>=6 AND W.FRECADVANCERATE = 100 THEN ISNULL(Q.累计发货金额,0)-ISNULL(v.累计退货金额,0) - WHEN X.FNAME in ('货到票到收款(系统)','货到票到收款(仪表)') AND isnull(ROUND( DATEDIFF(DAY,convert(nvarchar(10),dateadd(day,isnull(w.f_day,0) ,W.F_PMSDate),23),@ThisDate) / 30,0) ,0)>=6 THEN ISNULL(W.F_MBBA_Decimal_uky,0) - WHEN X.FNAME in ('款到发货(仪表)','款到发货(系统)') AND isnull(ROUND( DATEDIFF(DAY,convert(nvarchar(10),dateadd(day,isnull(w.f_day,0) ,W.F_PMSDate),23),@ThisDate) / 30,0) ,0)>=6 AND W.FRECADVANCERATE = 100 THEN ISNULL(Q.累计发货金额,0)-ISNULL(v.累计退货金额,0) - WHEN X.FNAME in ('款到发货(仪表)','款到发货(系统)') AND isnull(ROUND( DATEDIFF(DAY,convert(nvarchar(10),dateadd(day,isnull(w.f_day,0) ,W.F_PMSDate),23),@ThisDate) / 30,0) ,0)>=6 THEN ISNULL(W.F_MBBA_Decimal_uky,0) - ELSE null--款到发货(仪表) - END AS '应收款专责小组' -INTO #TEMP1 -FROM T_SAL_ORDER A --销售订单表头 - LEFT JOIN - (Select a2.FENTRYID,a2.FDATAVALUE From T_BAS_ASSISTANTDATAENTRY a1 JOIN T_BAS_ASSISTANTDATAENTRY_L a2 on a1.FENTRYID = a2.FENTRYID - Where a1.FID = '670cc977263353') B on A.F_ORDERCATEGORY = B.FENTRYID - --INNER JOIN T_SAL_orderentry b on a.FID = B.FID --销售订单表体 - INNER JOIN T_BD_CUSTOMER_L C ON C.FCUSTID= A.FCUSTID AND C.FLOCALEID= 2052 --客户附属表 - INNER JOIN T_SAL_ORDERFIN F ON F.FID = A.FID - INNER JOIN T_BD_CUSTOMER I ON I .FCUSTID = A.FCUSTID - INNER JOIN T_SAL_ORDERFIN J ON J.FID= A.FID - LEFT JOIN T_BAS_PREBDONE_L G ON G.FID = A.F_projectname AND G.FLocaleID =2052 - LEFT JOIN T_BAS_PREBDTHREE H ON H.FID = A.F_BON - lEFT JOIN V_ASSISTANTDATA K ON K.FENTRYID = I.FCompanyNature - lEFT JOIN V_BD_SALESMAN_L L ON L.fid = A.FSALERID - left JOIN T_PerformanceSharing M ON M.FSOURCEBILLNO = A.FBILLNO - left JOIN T_PerformanceSharingEntry N ON N.FID=M.FID - LEFT JOIN V_BD_SALESMAN_L O ON O.fid= N.FSALEID - LEFT JOIN V_ASSISTANTDATA P ON P.FENTRYID = I.F_CREDITCLASSIFICATION - LEFT JOIN T_SAL_OUTSTOCK CK on CK.F_CONTRACTNUMBER = A.F_CONTRACTNUMBER --销售出库单 - LEFT JOIN T_IV_SALESIC FP on FP.F_PAPERNUMBER = A.F_CONTRACTNUMBER --销售增值税专用发票 - LEFT JOIN - ( - SELECT F_Papercontract,MAX(CONVERT(NVARCHAR(10), A.FDATE,23)) AS '发货日期',SUM(B.FBILLALLAMOUNT_LC) AS '累计发货金额' FROM T_SAL_DELIVERYNOTICE A - INNER JOIN T_SAL_DELIVERYNOTICEFIN B ON A.FID =B.FID - WHERE A.FDOCUMENTSTATUS= 'C' - GROUP BY A.F_Papercontract - ) Q ON Q.F_PAPERCONTRACT = A.F_contractnumber --获取发货通知单最大的发货日期 - LEFT JOIN T_META_FORMENUMITEM R ON r.FVALUE = A.F_OrderType AND R.FID = 'bc2c1d77-0f4b-41d2-b61b-e29554c570d4' - LEFT JOIN T_META_FORMENUMITEM_L S ON S.FENUMID = R.FENUMID AND S.FLOCALEID = 2052 - LEFT JOIN - ( - SELECT F_Paper ,CONVERT(NVARCHAR(10), MAX(FDATE),23) AS '开票日期',CONVERT(NVARCHAR(10), - MAX(FDATE),23) AS '没有红色的开票日期' - FROM t_AR_receivable A - INNER JOIN T_AR_RECEIVABLEENTRY B ON A.FID = B.FID - WHERE A.FDOCUMENTSTATUS = 'C' AND A.FCancelStatus = 'A' - GROUP BY F_Paper - ) T ON T.F_PAPER = A.F_contractnumber - LEFT JOIN V_ASSISTANTDATA U ON U.FENTRYID = A.F_Ordercategory - LEFT JOIN - ( - SELECT F_contractnumber,MAX(CONVERT(NVARCHAR(10), A.FDATE,23)) AS '退货日期',SUM(B.FBILLALLAMOUNT_LC) AS '累计退货金额' FROM T_SAL_RETURNSTOCK A - INNER JOIN T_SAL_RETURNSTOCKFIN B ON A.FID =B.FID - WHERE A.FDOCUMENTSTATUS= 'C' - GROUP BY A.F_contractnumber - ) V ON V.F_contractnumber = A.F_contractnumber --获取销售退货单 - LEFT JOIN ERPTOHR.HYHRV3.dbo.v_erp_empinfo AC ON AC.名称=L.FNAME - LEFT JOIN ERPTOHR.HYHRV3.dbo.v_erp_empinfo ACC ON ACC.名称=O.FNAME - --LEFT JOIN temp20241206 AC ON AC.名称=L.FNAME - --LEFT JOIN temp20241206 ACC ON ACC.名称=O.FNAME - LEFT JOIN T_SAL_ORDERPLAN W ON W.FID= A.FID - LEFT JOIN T_BD_RecCondition_L X on X.FID = W.F_RecConditionId - LEFT JOIN #RecCond Y ON Y.FID =A.FID AND Y.FNAME LIKE '%质保金%' - LEFT JOIN (select distinct fid from #RecCond Z where Z.FNAME LIKE '%款到%') z on z.fid =a.fid - LEFT JOIN (select distinct fid from #RecCond AA where AA.FNAME LIKE '%协议%') AA on AA.fid =a.fid - LEFT JOIN (SELECT distinct F_Papercontract FROM T_SAL_DELIVERYNOTICE WHERE F_SFYFH ='是') AB ON AB.F_PAPERCONTRACT = A.F_contractnumber - LEFT JOIN - ( - SELECT - F_Papercontract,CAST( sum(b.FALLAMOUNT) AS REAL) AS '发票总金额', - CAST (sum(CASE WHEN F_Papercontract = 'Y' THEN b.FALLAMOUNT ELSE 0 END ) AS REAL) AS '发票总金额(普票存财务)' - FROM t_AR_receivable A - INNER JOIN T_AR_RECEIVABLEFIN B ON A.FID = B.FID - GROUP BY F_Papercontract - ) AD ON AD.F_PAPERCONTRACT = A.F_contractnumber - LEFT JOIN - ( - SELECT a.F_Papercontract, - avg(d.FCURWRITTENOFFAMOUNT) as '累计收款' - - FROM t_AR_receivable A - INNER JOIN T_AR_RECEIVABLEENTRY E ON E.FID =A.FID - INNER JOIN T_AR_RECMacthLogENTRY B ON A.FBILLNO = B.FSRCBILLNO - INNER JOIN T_AR_RECMacthLog C ON C.FID = B.FID - INNER JOIN T_AR_RECMacthLogENTRY D ON D.FID = B.FID - AND D.FSOURCETYPE = '36cf265bd8c3452194ed9c83ec5e73d2' - WHERE - 1=1 - group by a.F_Papercontract - ) AE ON AE.F_Papercontract = A.F_contractnumber - WHERE 1=1 AND A.FDOCUMENTSTATUS = 'C' AND B.FDATAVALUE != 'Z' - AND ((F.FBILLALLAMOUNT_LC * isnull(n.FSHARERATE,100) /100)!=0) -{1} -ORDER BY A.F_contractnumber - -SELECT @SUMDQ = SUM(到期应收款额) FROM #TEMP1 - -SELECT - SBU AS SBU1, - CONVERT(DECIMAL(10, 2),SUM(ISNULL(年底到期应收款额, 0)),2) AS '总年底到期应收款额', - CONVERT(DECIMAL(10, 2),SUM(ISNULL(到期应收款额, 0)),2) AS '总到期应收款额', - CONVERT(DECIMAL(10, 2),SUM(ISNULL(年底到期应收款专责小组, 0)),2) AS '年底到期应收款专责小组', - CONVERT(DECIMAL(10, 2),SUM(ISNULL(应收款专责小组, 0)),2) AS '应收款专责小组', - '' AS '占比', - 0 AS '变化' - INTO #TEMP2 -FROM - #TEMP1 -GROUP BY - SBU -ORDER BY - SBU DESC; - -ALTER TABLE #TEMP2 -ALTER COLUMN 占比 NVARCHAR(100); - -UPDATE #TEMP2 -SET 占比 = CASE - WHEN 总到期应收款额 = 0 THEN '' -- 防止除以0 - ELSE CONVERT(nvarchar(10), CONVERT(DECIMAL(10, 2), (总到期应收款额 / @SUMDQ) * 100),2) + '%' -END; - -UPDATE #TEMP2 -SET 变化 = CONVERT(DECIMAL(10, 2),(总到期应收款额 - 总年底到期应收款额),2) - -SELECT -ROW_NUMBER() OVER (ORDER BY B.SBU1 DESC) AS FID, -ROW_NUMBER() OVER (ORDER BY B.SBU1 DESC) AS FIDENTITYID, -B.SBU1 AS 'SBU', -CASE -WHEN B.总年底到期应收款额 = 0 THEN null -ELSE B.总年底到期应收款额 END AS '年底到期应收款额', -CASE -WHEN B.年底到期应收款专责小组 = 0 THEN null -ELSE B.年底到期应收款专责小组 END AS '年底到期应收款专责小组', -CASE -WHEN B.总到期应收款额 = 0 THEN null -ELSE B.总到期应收款额 END AS '到期应收款额', -CASE -WHEN B.应收款专责小组 = 0 THEN null -ELSE B.应收款专责小组 END AS '应收款专责小组', -B.占比 AS '占比', -B.变化 AS '变化' -INTO {0} FROM #TEMP2 B -GROUP BY B.年底到期应收款专责小组,B.应收款专责小组,B.SBU1,B.总年底到期应收款额,B.总到期应收款额,B.占比,B.变化 -", tableName,Filter); + EXEC YSQKGKSBU_GZTH '{0}' '{1}' + SELECT + ROW_NUMBER() OVER (ORDER BY SBU DESC) AS FID, + ROW_NUMBER() OVER (ORDER BY SBU DESC) AS FIDENTITYID, + * INTO {2} FROM YSQKGK_SBU_GZTH + ", FStrartDate,FEndDate,tableName); //执行SQL并动态创建报表 DBUtils.ExecuteDynamicObject(this.Context, sql); } - //获取过滤条件 - private string GetFilterWhere(IRptParams fileter) - { - //获取自定义过滤条件 - DynamicObject customFilter = fileter.FilterParameter.CustomFilter; - //创建字符串构建器 - StringBuilder strwhere = new StringBuilder(); - var orgFid = customFilter["F_YKQC_OrgId_uky"] as DynamicObject; - if (orgFid != null) - { - string org = string.IsNullOrWhiteSpace(customFilter["F_YKQC_OrgId_uky"].ToString()) ? "" : - string.Format("AND A.FSaleOrgId IN ({0})", orgFid["Id"].Long2Int()); - //添加组织过滤条件 - strwhere.AppendLine(org); - } - return strwhere.ToString(); - } //添加合计列 public override List GetSummaryColumnInfo(IRptParams filter) { var result = base.GetSummaryColumnInfo(filter); - result.Add(new SummaryField("年底到期应收款额", Kingdee.BOS.Core.Enums.BOSEnums.Enu_SummaryType.SUM)); - result.Add(new SummaryField("到期应收款额",Kingdee.BOS.Core.Enums.BOSEnums.Enu_SummaryType.SUM)); + result.Add(new SummaryField("年初到期应收款额", Kingdee.BOS.Core.Enums.BOSEnums.Enu_SummaryType.SUM)); + result.Add(new SummaryField("其中_年初应收款专责小组", Kingdee.BOS.Core.Enums.BOSEnums.Enu_SummaryType.SUM)); + result.Add(new SummaryField("本年到期应收款额", Kingdee.BOS.Core.Enums.BOSEnums.Enu_SummaryType.SUM)); + result.Add(new SummaryField("其中_本年应收款专责小组", Kingdee.BOS.Core.Enums.BOSEnums.Enu_SummaryType.SUM)); + result.Add(new SummaryField("变化", Kingdee.BOS.Core.Enums.BOSEnums.Enu_SummaryType.SUM)); return result; } diff --git a/派诺报表SQL文件/业绩排行榜插入数据SQL.sql b/派诺报表SQL文件/业绩排行榜插入数据SQL.sql index e1a98f9..db26fdb 100644 --- a/派诺报表SQL文件/业绩排行榜插入数据SQL.sql +++ b/派诺报表SQL文件/业绩排行榜插入数据SQL.sql @@ -292,7 +292,7 @@ SELECT [ INSERT INTO YJPHB_GZTH([_SBU],[ϸ],[],[ۼƻؿ]) SELECT [_SBU],[ϸ],[Ա],[տ] FROM #SKTEMP1 WHERE [֯FID] = '533896' ---ŵۼƻؿտ˿ +--뻪ۼƻؿտ˿ INSERT INTO YJPHB_GZTH([_SBU],[ϸ],[],[ۼƻؿ]) SELECT [_SBU],[ϸ],[Ա],[տ˿] FROM #SKTKTEMP1 WHERE [֯FID] = '533896' diff --git a/派诺报表SQL文件/应收情况概况表按SBU区分.sql b/派诺报表SQL文件/应收情况概况表按SBU区分.sql new file mode 100644 index 0000000..81e0d3b --- /dev/null +++ b/派诺报表SQL文件/应收情况概况表按SBU区分.sql @@ -0,0 +1,12 @@ +CREATE TABLE YSQKGK_SBU_GZTH +( + SBU NVARCHAR(100), -- SBU ֶγΪ 100ɸʵ + Ӧտ DECIMAL(23, 10), + _ӦտרС DECIMAL(23, 10), + 굽Ӧտ DECIMAL(23, 10), + _ӦտרС DECIMAL(23, 10), + ռ NVARCHAR(500), + 仯 DECIMAL(23, 10) +); + +--DROP TABLE YSQKGK_SBU_GZTH \ No newline at end of file diff --git a/派诺报表SQL文件/应收情况概况表按SBU区分创建表单.sql b/派诺报表SQL文件/应收情况概况表按SBU区分创建表单.sql new file mode 100644 index 0000000..4abbe7d --- /dev/null +++ b/派诺报表SQL文件/应收情况概况表按SBU区分创建表单.sql @@ -0,0 +1,10 @@ +CREATE TABLE AccountsReceivable +( + SBU NVARCHAR(100), -- SBU ֶγΪ 100ɸʵ + Ӧտ DECIMAL(23, 10), + _ӦտרС DECIMAL(23, 10), + 굽Ӧտ DECIMAL(23, 10), + _ӦտרС2024 DECIMAL(23, 10), + ռ DECIMAL(23, 10), + 仯 DECIMAL(23, 10) +); \ No newline at end of file diff --git a/派诺报表SQL文件/应收情况概况表按SBU区分插入数据SQL.sql b/派诺报表SQL文件/应收情况概况表按SBU区分插入数据SQL.sql new file mode 100644 index 0000000..53bdeee --- /dev/null +++ b/派诺报表SQL文件/应收情况概况表按SBU区分插入数据SQL.sql @@ -0,0 +1,100 @@ +CREATE PROCEDURE YSQKGKSBU_GZTH + @FSDate NVARCHAR(100), + @FEDate NVARCHAR(100) +AS +BEGIN + DECLARE @SumDQJE DECIMAL(23,10) + + -- + DECLARE @FEDateDate DATE; + + --ж@FEDateǷΪ + IF @FEDate IS NULL OR @FEDate = '' + BEGIN + SET @FEDateDate = GETDATE(); + END + ELSE + BEGIN + -- תΪ + SET @FEDateDate = CONVERT(DATE, @FEDate); + END + + -- ȡһ 12 31 + SET @FEDateDate = DATEFROMPARTS(YEAR(@FEDateDate) - 1, 12, 31); + + --ձ + TRUNCATE TABLE YSQKGK_SBU_GZTH + --ѯʱΪǰĵڽ + SELECT [SBU],SUM([ڽ]) AS 'ڽ' INTO #NCTEMP1 FROM ZRP_YingShouMingXi_yuyubo + WHERE [ʱ] <= @FEDateDate + GROUP BY [SBU] + + --뵽ʱΪǰĵڽ + INSERT INTO YSQKGK_SBU_GZTH([SBU],[Ӧտ]) + SELECT [SBU],[ڽ] FROM #NCTEMP1 WHERE [ڽ] <> 0 + + --ѯʱΪǰĵڽտ=ӦտרС + SELECT [SBU],SUM([ڽ]) AS 'ڽ' INTO #NCZZTEMP1 FROM ZRP_YingShouMingXi_yuyubo + WHERE [ʱ] <= @FEDateDate AND [տ] = 'ӦտרС' + GROUP BY [SBU] + + --뵽ʱΪǰĵڽտ=ӦտרС + INSERT INTO YSQKGK_SBU_GZTH([SBU],[_ӦտרС]) + SELECT [SBU],[ڽ] FROM #NCZZTEMP1 WHERE [ڽ] <> 0 + + --ѯȵʱĵڽ + SELECT [SBU],SUM([ڽ]) AS 'ڽ' INTO #BNTEMP1 + FROM ZRP_YingShouMingXi_yuyubo + WHERE + format([ʱ],'yyyy-MM-dd') >= @FSDate + AND format([ʱ],'yyyy-MM-dd') <= @FEDate + GROUP BY [SBU] + + --뱾ȵʱĵڽ + INSERT INTO YSQKGK_SBU_GZTH([SBU],[굽Ӧտ]) + SELECT [SBU],[ڽ] FROM #BNTEMP1 WHERE [ڽ] <> 0 + + --ѯȵʱĵڽտ=ӦտרС + SELECT [SBU],SUM([ڽ]) AS 'ڽ' INTO #BNZZTEMP1 + FROM ZRP_YingShouMingXi_yuyubo + WHERE + [ʱ] >= @FSDate + AND [ʱ] <= @FEDate + AND [տ] = 'ӦտרС' + GROUP BY [SBU] + + INSERT INTO YSQKGK_SBU_GZTH([SBU],[_ӦտרС]) + SELECT [SBU],[ڽ] FROM #BNZZTEMP1 WHERE [ڽ] <> 0 + + SELECT * + INTO #TEMP1 + FROM( + SELECT [SBU], + SUM([Ӧտ]) AS Ӧտ, + SUM([_ӦտרС]) AS _ӦտרС, + SUM([굽Ӧտ]) AS 굽Ӧտ, + SUM([_ӦտרС]) AS _ӦտרС + FROM YSQKGK_SBU_GZTH + GROUP BY [SBU] + )AS YS + + --ձ + TRUNCATE TABLE YSQKGK_SBU_GZTH + + --² + INSERT INTO YSQKGK_SBU_GZTH([SBU],[Ӧտ],[_ӦտרС], + [굽Ӧտ],[_ӦտרС]) + SELECT * FROM #TEMP1 + + --ռ + SELECT @SumDQJE = SUM([굽Ӧտ]) FROM YSQKGK_SBU_GZTH + + UPDATE YSQKGK_SBU_GZTH + SET [ռ] = CONVERT(VARCHAR, CAST(([굽Ӧտ] / @SumDQJE) * 100 AS DECIMAL(10, 2))) + '%' + + --±仯 + UPDATE YSQKGK_SBU_GZTH + SET [仯] = ISNULL([굽Ӧտ],0) - ISNULL([Ӧտ],0) + + DROP TABLE #NCTEMP1,#NCZZTEMP1,#BNTEMP1,#BNZZTEMP1,#TEMP1 +END; \ No newline at end of file