--EXEC [GetReceiveData2] '','2025-01-01','2025-01-31'; --ALTER ALTER Proc [dbo].[GetReceiveData2] ( @FSaleOrgId nvarchar(1000), @FStartDate nvarchar(1000), @FEndDate nvarchar(1000) ) as 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 A.FBILLNO, A.FID , --B.FENTRYID, RANK()OVER(PARTITION BY A.FID ORDER BY N.FENTRYID ) AS '分摊序号', RANK()OVER(PARTITION BY A.FID ORDER BY N.FENTRYID DESC ) AS '分摊序号1', RANK()OVER(ORDER BY A.F_contractnumber) AS 'F_001' --流水号,报表自动生成 ,CASE WHEN ISNULL(O.FNAME,'') = '' THEN L.FNAME ELSE O.FNAME END as '销售员' ,CASE WHEN ISNULL(O.FNAME,'') = '' THEN AC.区域 ELSE ACC.区域 END as 'SBU' ,CASE WHEN ISNULL(O.FNAME,'') = '' THEN AC.明细区域 ELSE ACC.明细区域 END as '明细区域'--待定 ,c.FNAME as '购货单位' --销售订单-单据头-客户 ,K.FDATAVALUE AS '公司性质'--来自于客户资料-公司性质 ,P.FDATAVALUE AS '客户信用' --销售订单-客户-自定义-客户信用及分类# ,A.F_contractnumber AS '合同编号'--销售订单-单据头-纸质合同号 , G.FNAME as '项目名称' --销售订单-单据头-项目名称 ,x.FNAME as '收款条件'--销售订单-收款计划-收款条件+天数+“天”+应收比例(%),多行之间需要用“,”隔开,如果天数为空就默认为0天 ,n.FSHARERATE as '应收比例' ,CASE WHEN ROW_NUMBER() OVER (PARTITION BY A.FId,n.FSaleId ORDER BY n.FSaleId) = 1 THEN (F.FBILLALLAMOUNT_LC * isnull(n.FSHARERATE,100) /100) ELSE NULL END as '订单总额' --销售订单-单据体-价税合计本位币,按照分摊比例拆 ,convert( nvarchar(10), year(A.FDATE)) AS '签订年份' --销售订单-单据头-日期-对应的月份 ,CONVERT(VARCHAR(10), A.FDATE,23) AS '订单日期' --销售订单-单据头-日期 ,Q.发货日期 AS '发货日期' --取销售订单-单据头-纸质合同号关联的发货通知单,日期最大值,关联条件:销售订单纸质合同号=发货通知单纸质合同号 ,CASE WHEN U.FDATAVALUE LIKE 'W%' THEN T.开票日期 ELSE T.没有红色的开票日期 END AS '开票日期' --取销售订单-单据头-纸质合同号关联的应收单,日期最大值,关联条件:销售订单纸质合同号=发票纸质合同号。 --用户需要取的是蓝字开票日期的最大值,如果红字发票与蓝字发票对冲时,如果蓝字发票被被全部冲完, --该蓝字发票不参与取数,否则参与取数。 --1、销售订单-合同类型#="W",所有的发票都参与计算(排除红字及被红字冲销完全冲销掉的蓝字发票) --2、销售订单-合同类型#≠"W",所有的发票都参与计算(排除红字及被红字冲销完全冲销掉的蓝字发票、“是否普票存财务”=“是”) ,CASE WHEN ROW_NUMBER() OVER (PARTITION BY A.FId,n.FSaleId ORDER BY n.FSaleId) = 1 THEN cast( round( ISNULL(Q.累计发货金额,0) * ISNULL(N.FSHARERATE,100)/100,2) as real) ELSE NULL END as '累计发货金额'--发货通知单金额,需要按业务员分摊比例拆分,单据关联条件:销售订单纸质合同号=发货通知单纸质合同号 ,CASE WHEN ROW_NUMBER() OVER (PARTITION BY A.FId,n.FSaleId ORDER BY n.FSaleId) = 1 THEN cast( round( ISNULL(v.累计退货金额,0) * ISNULL(N.FSHARERATE,100)/100,2) as real) ELSE NULL END AS '累计退货金额' --取销售订单-单据头-纸质合同号关联的退货单-退货金额[退货单价要与销售订单变更操作后单价同步更新],关联条件:销售订单纸质合同号=退货单纸质合同号 ,CASE WHEN ROW_NUMBER() OVER (PARTITION BY A.FId,n.FSaleId ORDER BY n.FSaleId) = 1 THEN ISNULL( CASE WHEN U.FDATAVALUE LIKE 'W%' THEN AD.发票总金额 ELSE AD.[发票总金额(普票存财务)] END,0) ELSE NULL END AS '累计开票金额' --1、销售订单-合同类型#="W",所有的发票金额合计 2、销售订单-合同类型#≠"W",所有的发票都参与计算,且“是否普票存财务”=“是”,需要按业务员分摊比例拆分 ,CASE WHEN ROW_NUMBER() OVER (PARTITION BY A.FId,n.FSaleId ORDER BY n.FSaleId) = 1 THEN cast(round( isnull(ae.累计收款,0) * isnull(n.FSHARERATE,100) /100,2) as real) ELSE NULL END AS '累计到款金额' --待定 ,CASE WHEN ROW_NUMBER() OVER (PARTITION BY A.FId,n.FSaleId ORDER BY n.FSaleId) = 1 THEN cast(round( (F.FBILLALLAMOUNT_LC - (isnull(ae.累计收款,0))) * isnull(n.FSHARERATE,100) /100,2) as real) ELSE NULL END AS '应收款合计' --等于订单总额-退货金额(相当于减少销售订单金额,不会再补发,如果还需要发货,就重新下销售订单或在销售订单分录新增一行)-收款金额 ,cast( round( J.FBILLALLAMOUNT_LC- ISNULL(Q.累计发货金额,0) * ISNULL(N.FSHARERATE,100)/100,2) as real) AS '未出货总额' --订单总额-发货通知单金额,需要按业务员分摊比例拆分,单据关联条件:销售订单纸质合同号=发货通知单纸质合同号 ,convert(nvarchar(10),dateadd(day,isnull(w.f_day,0) ,W.F_PMSDate),23) AS '预计到期时间' --销售订单-付款计划-PMS日期# ,case when convert(nvarchar(10),dateadd(day,isnull(w.f_day,0) ,W.F_PMSDate),23) > Getdate() AND W.FRECADVANCEAMOUNT > W.FRECAMOUNT then W.FRECADVANCEAMOUNT - W.FRECAMOUNT ELSE 0 END AS '未到期金额' --待定 ,'' AS '实际已出货应收款合计'--待定 ,convert(nvarchar(10),dateadd(day,isnull(w.f_day,0) ,W.F_PMSDate),23) AS '到期时间' -- ,case when convert(nvarchar(10),dateadd(day,isnull(w.f_day,0) ,W.F_PMSDate),23) <= Getdate() AND W.FRECADVANCEAMOUNT > W.FRECAMOUNT then W.FRECADVANCEAMOUNT - W.FRECAMOUNT ELSE 0 END as '到期金额' --待定 ,case when isnull(ROUND( DATEDIFF(DAY,convert(nvarchar(10),dateadd(day,isnull(w.f_day,0) ,W.F_PMSDate),23),Getdate()) / 30,0) ,0)>=6 then '应收款专责小组' else O.FNAME end AS '收款人' --待定 ,CASE WHEN A.F_XMJD <> '' THEN A.F_XMJD WHEN ISNULL(Q.累计发货金额,0) = 0 THEN '未启动' WHEN F.FBILLALLAMOUNT_LC = ISNULL(Q.累计发货金额,0) THEN '发货完成' WHEN F.FBILLALLAMOUNT_LC > ISNULL(Q.累计发货金额,0) then '发货中' END AS '项目阶段' --待定 ,a.F_XMJDD AS '项目进度' --取销售订单-销售进度 ,convert(nvarchar(10),a.F_XMTSSJ,23) AS '项目调试时间' --取项目调试时间 ,convert(nvarchar(10),a.F_XMYSSJ,23) AS '项目验收时间' --取项目验收时间 ,CASE WHEN ROW_NUMBER() OVER (PARTITION BY A.FId,n.FSaleId ORDER BY n.FSaleId) = 1 THEN CAST ( y.FRECADVANCEAMOUNT AS REAL ) ELSE NULL END AS '质保金' --销售订单-收款计划-收款条件中含“质保金”字样对应的应收金额 ,CASE WHEN ROW_NUMBER() OVER (PARTITION BY A.FId,n.FSaleId ORDER BY n.FSaleId) = 1 THEN CAST ( y.F_DAY as REAL ) ELSE NULL END AS '质保金天数' -- ,convert(nvarchar(10),dateadd(day,isnull(y.f_day,0) ,y.F_PMSDate),23) AS '质保金到期时间' -- ,case when a.F_YYS = 0 then '否' else '是' 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 '账龄阶段' --待定 ,w.FSEQ as '阶段序号' --,w.FRECADVANCERATE 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 '收款比例' ,convert(nvarchar(100), '') AS '一到六个月' --待定 ,convert(nvarchar(100), '') AS '七到十二个月' --待定 ,convert(nvarchar(100), '') AS '十三到十八个月' --待定 ,convert(nvarchar(100), '') AS '十九个月以上' --待定 ,convert(nvarchar(100), '') 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 '诉讼' else '' end AS '风险评估级别' --待定 ,CASE WHEN S.FCAPTION = '仪表' THEN '元器件' ELSE s.FCAPTION END AS '结算类别' --取销售订单-单据头-订单类别#,当值为仪表时,改成元器件,其他为系统 ,CASE WHEN S.FCAPTION = '仪表' AND a.F_XMYSSJ <> '' then '项目已做完,回部分款' WHEN S.FCAPTION = '仪表' AND a.F_XMYSSJ = '' then '项目未完工,欠款合同' WHEN S.FCAPTION <> '仪表' AND y.FID is not null then '款到发货' WHEN S.FCAPTION <> '仪表' AND z.FID is not null then '协议付款' ELSE '预收款+到货/调试款+质保金' END AS '结算类型' ,convert(nvarchar(10),dateadd(day,isnull(w.f_day,0)+180 ,W.F_PMSDate),23) AS '转专责小组时间' ,case when convert(nvarchar(10),dateadd(day,isnull(w.f_day,0)+180 ,W.F_PMSDate),23) is null then '否' else '是' end AS '是否超账龄转出' ,'' AS '责任人','' AS '原SBU','' AS '订单次数','' AS '原商务人员','' AS '商务人员','' AS '分组','' AS '商务人员公式','' AS '引用商务人员','' AS '反馈表回款引用','' AS '回款金额','' AS '核验商务' ,'' AS '超账龄是否申请归还大区' --待定 ,'' AS '反馈表商务人员引用' --待定 ,'' AS '反馈表引用分组' --待定 ,'' AS '取值销售' --待定 ,case when FIsBadDebt = 1 then '是' else '否' end AS '是否坏账' --取销售订单上的是否坏账 ,CASE WHEN AB.F_PAPERCONTRACT IS NULL THEN '否' else '是' end AS '是否预发货' --取销售订单上的是否预发货 ,'' AS '预计回款时间' --待定 ,'' AS '预计回款金额' --待定 ,'' AS '情况分类' --待定E ,'' AS '销售反馈情况' --待定 ,'' AS '商务运营专责协助收款反馈情况' --待定 ,B.FDATAVALUE 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 ( 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 (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 A.FSALEORGID = @FSaleOrgId) AND (@FEndDate = '' or A.FDATE<=@FEndDate) AND (@FStartDate = '' or A.FDATE>=@FStartDate) ORDER BY A.F_contractnumber --AND A.FBILLNO = 'PL-XSDD207241200017' --AND a.FBILLNO = 'PL-XSDD20241200058' --where a.fid = 100130 --更新账龄 UPDATE #TEMP1 SET [账龄月] = '0' ,[账龄阶段]='' WHERE 收款比例汇总<=收款比例*100 --更新账龄 --SELECT * UPDATE #TEMP1 SET [一到六个月]= case when [账龄月] <> 0 AND [账龄阶段]='一到六个月' AND 收款比例<收款比例汇总 then CONVERT(nvarchar(10), round( 收款比例汇总,2)-收款比例*100) else '' end, [七到十二个月]= case when [账龄月] <> 0 AND [账龄阶段]='七到十二个月' AND 收款比例<收款比例汇总 then CONVERT(nvarchar(10), round( 收款比例汇总,2)-收款比例*100) else '' end, [十三到十八个月]=case when [账龄月] <> 0 AND [账龄阶段]='十三到十八个月' AND 收款比例<收款比例汇总 then CONVERT(nvarchar(10), round( 收款比例汇总,2)-收款比例*100) else '' end, [十九个月以上]=case when [账龄月] <> 0 AND [账龄阶段]='十九个月以上' AND 收款比例<收款比例汇总 then CONVERT(nvarchar(10), round( 收款比例汇总,2)-收款比例 *100) else '' end, [一年以上]=case when [账龄月] <> 0 AND ROUND([账龄月] / 30,0) >= 13 AND 收款比例<收款比例汇总 then CONVERT(nvarchar(10), round( 收款比例汇总,2)-收款比例*100) else '' end --FROM #TEMP1 WHERE 预计到期时间