金蝶Cloud 应收账龄分析表-按到期日查询SQL

select t.组织,t.客户,sum(t.余额*isnull(m.FEXCHANGERATE,1)) 期末余额,sum(isnull(t.[账期内],0)*isnull(m.FEXCHANGERATE,1)) [账期内],sum(isnull(t.[超账期1个月],0)*isnull(m.FEXCHANGERATE,1)) [超账期1个月],sum(isnull(t.[超账期2个月],0)*isnull(m.FEXCHANGERATE,1)) [超账期2个月],sum(isnull(t.[超账期3个月],0)*isnull(m.FEXCHANGERATE,1)) [超账期3个月],sum(isnull(t.[超账期4个月及以上],0)*isnull(m.FEXCHANGERATE,1)) [超账期4个月及以上]from(select t5.FNAME 组织,t4.FNAME 客户,sum(t18.FPayAmountFor-ISNULL(APmatchRecord.FCURWRITTENOFFAMOUNTFOR,0)-ISNULL(ARmatchRecord.FCURWRITTENOFFAMOUNTFOR,0)) 余额,case when datediff(dd,t1.FENDDATE,getdate())<=0 then sum(t18.FPayAmountFor-ISNULL(APmatchRecord.FCURWRITTENOFFAMOUNTFOR,0)-ISNULL(ARmatchRecord.FCURWRITTENOFFAMOUNTFOR,0)) end [账期内],case when datediff(dd,t1.FENDDATE,getdate())>0 and datediff(dd,t1.FENDDATE,getdate())<=30 then sum(t18.FPayAmountFor-ISNULL(APmatchRecord.FCURWRITTENOFFAMOUNTFOR,0)-ISNULL(ARmatchRecord.FCURWRITTENOFFAMOUNTFOR,0)) end [超账期1个月],case when datediff(dd,t1.FENDDATE,getdate())>30 and datediff(dd,t1.FENDDATE,getdate())<=60 then sum(t18.FPayAmountFor-ISNULL(APmatchRecord.FCURWRITTENOFFAMOUNTFOR,0)-ISNULL(ARmatchRecord.FCURWRITTENOFFAMOUNTFOR,0)) end [超账期2个月],case when datediff(dd,t1.FENDDATE,getdate())>60 and datediff(dd,t1.FENDDATE,getdate())<=90 then sum(t18.FPayAmountFor-ISNULL(APmatchRecord.FCURWRITTENOFFAMOUNTFOR,0)-ISNULL(ARmatchRecord.FCURWRITTENOFFAMOUNTFOR,0)) end [超账期3个月],case when datediff(dd,t1.FENDDATE,getdate())>90 then sum(t18.FPayAmountFor-ISNULL(APmatchRecord.FCURWRITTENOFFAMOUNTFOR,0)-ISNULL(ARmatchRecord.FCURWRITTENOFFAMOUNTFOR,0)) end [超账期4个月及以上],t1.FCURRENCYID 币别from t_AR_receivable t1--left join T_AR_RECEIVABLEENTRY t2 on t1.FID=t2.FIDleft join T_BD_CUSTOMER_L t4 on t4.FCUSTID=t1.FCUSTOMERID and t4.FLOCALEID=2052left join T_ORG_ORGANIZATIONS_L t5 on t1.FSALEORGID=t5.FORGID and t5.FLOCALEID=2052left join T_BD_CUSTOMER t10 on t4.FCUSTID=t10.FCUSTIDleft join T_BD_CUSTOMERGROUP_L t11 on t10.FPRIMARYGROUP=t11.FID and t11.FLOCALEID=2052left join t_AR_receivableFIN t17 on t1.FID=t17.FIDleft join T_AR_RECEIVABLEPLAN t18 ON t1.FID = t18.FID left join (SELECT data1.FSourceFromid,data1.FSrcBillId,data1.FSrcRowId,ISNULL(sum(data1.FCURWRITTENOFFAMOUNTFOR),0) fcurwrittenoffamountfor,ISNULL(sum(data1.FCURWRITTENOFFAMOUNT),0) fcurwrittenoffamount FROM (SELECT LogEntry.FSourceFromid,FSrcBillId,FSrcRowId,LogEntry.FCURWRITTENOFFAMOUNTFOR,LogEntry.FCURWRITTENOFFAMOUNT FROM T_AR_RECMacthLog PayLog INNER JOIN T_AR_RECMacthLogENTRY LogEntry ON PayLog.Fid = LogEntry.Fid    WHERE LogEntry.FSourceFromid = 'AR_receivable') data1GROUP BY data1.FSourceFromid,data1.FSrcBillId,data1.FSrcRowId) armatchrecord ON t1.FId = ARmatchRecord.FSrcBillId AND t18.FEntryId = ARmatchRecord.FSrcRowIdleft join (SELECT data2.FSourceFromid,data2.FSrcBillId,data2.FSrcRowId,ISNULL(sum(data2.FCURWRITTENOFFAMOUNTFOR),0) fcurwrittenoffamountfor,ISNULL(sum(data2.FCURWRITTENOFFAMOUNT),0) fcurwrittenoffamount FROM (SELECT LogEntry.FSourceFromid,FSrcBillId,FSrcRowId,LogEntry.FCURWRITTENOFFAMOUNTFOR,LogEntry.FCURWRITTENOFFAMOUNT FROM T_AP_PAYMatchLog PayLog INNER JOIN T_AP_PAYMatchLogEntry LogEntry ON PayLog.Fid = LogEntry.Fid    WHERE LogEntry.FSourceFromid = 'AR_receivable') data2 GROUP BY data2.FSourceFromid,data2.FSrcBillId,data2.FSrcRowId) apmatchrecord ON t1.FId = APmatchRecord.FSrcBillId AND t18.FEntryId = APmatchRecord.FSrcRowId where t1.FDOCUMENTSTATUS='C' and t11.FNAME<>'关联公司'group by t5.FNAME,t4.FNAME,t1.FENDDATE,t1.FCURRENCYIDhaving sum(t18.FPayAmountFor-ISNULL(APmatchRecord.FCURWRITTENOFFAMOUNTFOR,0)-ISNULL(ARmatchRecord.FCURWRITTENOFFAMOUNTFOR,0)) <>0union allselect t5.FNAME 组织,t4.FNAME 客户,-SUM(ISNULL(t2.FRECTOTALAMOUNTFOR, 0)-ISNULL(t17.FCURWRITTENOFFAMOUNTFOR, 0)) 收款金额,case when datediff(dd,t1.FDATE,getdate())<=0 then -SUM(ISNULL(t2.FRECTOTALAMOUNTFOR, 0)-ISNULL(t17.FCURWRITTENOFFAMOUNTFOR, 0)) end [账期内],case when datediff(dd,t1.FDATE,getdate())>0 and datediff(dd,t1.FDATE,getdate())<=30 then -SUM(ISNULL(t2.FRECTOTALAMOUNTFOR, 0)-ISNULL(t17.FCURWRITTENOFFAMOUNTFOR, 0)) end [超账期1个月],case when datediff(dd,t1.FDATE,getdate())>30 and datediff(dd,t1.FDATE,getdate())<=60 then -SUM(ISNULL(t2.FRECTOTALAMOUNTFOR, 0)-ISNULL(t17.FCURWRITTENOFFAMOUNTFOR, 0)) end [超账期2个月],case when datediff(dd,t1.FDATE,getdate())>60 and datediff(dd,t1.FDATE,getdate())<=90 then -SUM(ISNULL(t2.FRECTOTALAMOUNTFOR, 0)-ISNULL(t17.FCURWRITTENOFFAMOUNTFOR, 0)) end [超账期3个月],case when datediff(dd,t1.FDATE,getdate())>90 then -SUM(ISNULL(t2.FRECTOTALAMOUNTFOR, 0)-ISNULL(t17.FCURWRITTENOFFAMOUNTFOR, 0)) end [超账期4个月及以上],t1.FCURRENCYID 币别from T_AR_RECEIVEBILL t1left join T_AR_RECEIVEBILLENTRY t2 on t1.FID=t2.FIDleft join T_BD_CUSTOMER_L t4 on t4.FCUSTID=t1.FCONTACTUNIT and t4.FLOCALEID=2052left join T_ORG_ORGANIZATIONS_L t5 on t1.FSALEORGID=t5.FORGID and t5.FLOCALEID=2052left join T_BD_CUSTOMER t10 on t4.FCUSTID=t10.FCUSTIDleft join T_BD_CUSTOMERGROUP_L t11 on t10.FPRIMARYGROUP=t11.FID and t11.FLOCALEID=2052left join (SELECT data.FSourceFromid,data.FSrcBillId,data.FSRCROWID,ISNULL(sum(data.FCURWRITTENOFFAMOUNTFOR),0) fcurwrittenoffamountfor,ISNULL(sum(data.FCURWRITTENOFFAMOUNT),0) fcurwrittenoffamount FROM (SELECT LogEntry.FSourceFromid,FSrcBillId,LogEntry.FSRCROWID,LogEntry.FCURWRITTENOFFAMOUNTFOR,LogEntry.FCURWRITTENOFFAMOUNT FROM T_AR_RECMacthLog PayLog INNER JOIN T_AR_RECMacthLogENTRY LogEntry ON PayLog.Fid = LogEntry.Fid WHERE LogEntry.FSourceFromid = 'AR_RECEIVEBILL') data GROUP BY data.FSourceFromid,data.FSrcBillId,data.FSRCROWID) t17 ON t1.FId = t17.FSrcBillId AND t2.FENTRYID = t17.FSRCROWIDwhere t1.FDOCUMENTSTATUS='C' and t11.FNAME<>'关联公司'group by t5.FNAME,t4.FNAME,t1.FDATE,t1.FCURRENCYIDunion allselect t5.FNAME 组织,t4.FNAME 客户,SUM(ISNULL(t2.FREFUNDAMOUNTFOR,0)-ISNULL(t17.FCURWRITTENOFFAMOUNTFOR,0)) 退款金额,case when datediff(dd,t1.FDATE,getdate())<=0 then SUM(ISNULL(t2.FREFUNDAMOUNTFOR,0)-ISNULL(t17.FCURWRITTENOFFAMOUNTFOR,0)) end [账期内],case when datediff(dd,t1.FDATE,getdate())>0 and datediff(dd,t1.FDATE,getdate())<=30 then SUM(ISNULL(t2.FREFUNDAMOUNTFOR,0)-ISNULL(t17.FCURWRITTENOFFAMOUNTFOR,0)) end [超账期1个月],case when datediff(dd,t1.FDATE,getdate())>30 and datediff(dd,t1.FDATE,getdate())<=60 then SUM(ISNULL(t2.FREFUNDAMOUNTFOR,0)-ISNULL(t17.FCURWRITTENOFFAMOUNTFOR,0)) end [超账期2个月],case when datediff(dd,t1.FDATE,getdate())>60 and datediff(dd,t1.FDATE,getdate())<=90 then SUM(ISNULL(t2.FREFUNDAMOUNTFOR,0)-ISNULL(t17.FCURWRITTENOFFAMOUNTFOR,0)) end [超账期3个月],case when datediff(dd,t1.FDATE,getdate())>90 then SUM(ISNULL(t2.FREFUNDAMOUNTFOR,0)-ISNULL(t17.FCURWRITTENOFFAMOUNTFOR,0)) end [超账期4个月及以上],t1.FCURRENCYID 币别from T_AR_REFUNDBILL t1left join T_AR_REFUNDBILLENTRY t2 on t1.FID=t2.FIDleft join T_BD_CUSTOMER_L t4 on t4.FCUSTID=t1.FCONTACTUNIT and t4.FLOCALEID=2052left join T_ORG_ORGANIZATIONS_L t5 on t1.FSALEORGID=t5.FORGID and t5.FLOCALEID=2052left join T_BD_CUSTOMER t10 on t4.FCUSTID=t10.FCUSTIDleft join T_BD_CUSTOMERGROUP_L t11 on t10.FPRIMARYGROUP=t11.FID and t11.FLOCALEID=2052left join (SELECT data.FSourceFromid,data.FSrcBillId,data.FSRCROWID,ISNULL(sum(data.FCURWRITTENOFFAMOUNTFOR),0) fcurwrittenoffamountfor,ISNULL(sum(data.FCURWRITTENOFFAMOUNT),0) fcurwrittenoffamount FROM (SELECT LogEntry.FSourceFromid,FSrcBillId,LogEntry.FSRCROWID,LogEntry.FCURWRITTENOFFAMOUNTFOR,LogEntry.FCURWRITTENOFFAMOUNT FROM T_AR_RECMacthLog PayLog INNER JOIN T_AR_RECMacthLogENTRY LogEntry ON PayLog.Fid = LogEntry.Fid WHERE LogEntry.FSourceFromid = 'AR_REFUNDBILL') data GROUP BY data.FSourceFromid,data.FSrcBillId,data.FSRCROWID) t17 ON t1.FId = t17.FSrcBillId AND t2.FENTRYID = t17.FSRCROWIDwhere t1.FDOCUMENTSTATUS='C' and t11.FNAME<>'关联公司'group by t5.FNAME,t4.FNAME,t1.FDATE,t1.FCURRENCYIDunion allselect t5.FNAME 组织,t4.FNAME 客户,SUM(ISNULL(t2.FAMOUNTFOR,0)-ISNULL(t17.FCURWRITTENOFFAMOUNTFOR,0)) 应收金额,case when datediff(dd,t1.FENDDATE,getdate())<=0 then SUM(ISNULL(t2.FAMOUNTFOR,0)-ISNULL(t17.FCURWRITTENOFFAMOUNTFOR,0)) end [账期内],case when datediff(dd,t1.FENDDATE,getdate())>0 and datediff(dd,t1.FENDDATE,getdate())<=30 then SUM(ISNULL(t2.FAMOUNTFOR,0)-ISNULL(t17.FCURWRITTENOFFAMOUNTFOR,0)) end [超账期1个月],case when datediff(dd,t1.FENDDATE,getdate())>30 and datediff(dd,t1.FENDDATE,getdate())<=60 then SUM(ISNULL(t2.FAMOUNTFOR,0)-ISNULL(t17.FCURWRITTENOFFAMOUNTFOR,0)) end [超账期2个月],case when datediff(dd,t1.FENDDATE,getdate())>60 and datediff(dd,t1.FENDDATE,getdate())<=90 then SUM(ISNULL(t2.FAMOUNTFOR,0)-ISNULL(t17.FCURWRITTENOFFAMOUNTFOR,0)) end [超账期3个月],case when datediff(dd,t1.FENDDATE,getdate())>90 then SUM(ISNULL(t2.FAMOUNTFOR,0)-ISNULL(t17.FCURWRITTENOFFAMOUNTFOR,0)) end [超账期4个月及以上],t1.FCURRENCYID 币别from T_AR_OtherRecAble t1left join T_AR_OtherRecAbleENTRY t2 on t1.FID=t2.FIDleft join T_BD_CUSTOMER_L t4 on t4.FCUSTID=t1.FCONTACTUNIT and t4.FLOCALEID=2052left join T_ORG_ORGANIZATIONS_L t5 on t1.FSALEORGID=t5.FORGID and t5.FLOCALEID=2052left join T_BD_CUSTOMER t10 on t4.FCUSTID=t10.FCUSTIDleft join T_BD_CUSTOMERGROUP_L t11 on t10.FPRIMARYGROUP=t11.FID and t11.FLOCALEID=2052left join (SELECT data.FSourceFromid,data.FSrcBillId,data.FSRCROWID,ISNULL(sum(data.FCURWRITTENOFFAMOUNTFOR),0) fcurwrittenoffamountfor,ISNULL(sum(data.FCURWRITTENOFFAMOUNT),0) fcurwrittenoffamount FROM (SELECT LogEntry.FSourceFromid,FSrcBillId,LogEntry.FSRCROWID,LogEntry.FCURWRITTENOFFAMOUNTFOR,LogEntry.FCURWRITTENOFFAMOUNT FROM T_AR_RECMacthLog PayLog INNER JOIN T_AR_RECMacthLogENTRY LogEntry ON PayLog.Fid = LogEntry.Fid WHERE LogEntry.FSourceFromid = 'AR_OtherRecAble') data GROUP BY data.FSourceFromid,data.FSrcBillId,data.FSRCROWID) t17 ON t1.FId = t17.FSrcBillId AND t2.FENTRYID = t17.FSRCROWIDwhere t1.FDOCUMENTSTATUS='C' and t11.FNAME<>'关联公司'group by t5.FNAME,t4.FNAME,t1.FENDDATE,t1.FCURRENCYID)tleft join T_BD_RATE m on t.币别=m.FCYFORID and m.FRATETYPEID=2  where t.组织='公司名称'group by t.组织,t.客户,t.币别

金蝶Cloud 应收账龄分析表-按到期日查询SQL相关推荐

  1. sql azure 语法_如何使用Azure门户,Cloud Shell和T-SQL复制Azure SQL数据库

    sql azure 语法 This article will provide an overview covering programmatically moving databases on the ...

  2. 吉客云与金蝶云星空对接集成分页查询出库单连通采购退货新增(JackYun-采购退料OK)

    吉客云与金蝶云星空对接集成分页查询出库单连通采购退货新增(JackYun-采购退料OK) 数据源系统:吉客云 "吉客云"是一站式企业数字化解决方案系统,可实现业务.财务.办公.人事 ...

  3. 如何定位并优化慢查询Sql

    根据慢日志定位慢查询SQL. 查询慢日志相关变量,并进行设置: 主要关注下述三个变量: long_query_time.show_query_log_file.show_query_log 慢查询sq ...

  4. 面试官:说说一条查询sql的执行流程和底层原理?

    作者:孤独烟,资深后端工程师,业内知名原创作者 一条查询SQL执行流程图如下 本文改编自<高性能Mysql>,烟哥用小说的形式来讲这个内容. 序章 自我介绍 我是一条sql,就是一条长长的 ...

  5. 深度 | 一条查询SQL的前世今生 —— ClickHouse 源码阅读

    作者:逍凯,阿里云数据库实习开发工程师 注:以下分析基于开源 v19.15.2.2-stable 版本进行,社区最新版本代码改动较大,但是总体思路是不变的. 01 用户提交一条查询SQL背后发生了什么 ...

  6. cad模糊查询符号_万能模糊查询SQL

    ****************************************************************** * 功能:万能模糊查询SQL * 时间:2015/1/30 16: ...

  7. 面试mysql慢查询_剑指Offer面试题:如何定位并优化慢查询sql

    1.根据慢日志定位慢查询sql 使用以下命令查看相关系统变量属性: show variables like '%query%'; 主要看这三个属性: long_query_time : 10.0000 ...

  8. mysql 查询后怎么定位列_MySQL如何定位并优化慢查询sql

    1.如何定位并优化慢查询sql a.根据慢日志定位慢查询sql SHOW VARIABLES LIKE'%query%'     查询慢日志相关信息 slow_query_log 默认是off关闭的, ...

  9. 原生sql 查询返回一个实体_python连接SQLServer执行给定的查询SQL语句,并返回结果数据...

    今天写这篇文章的初衷就是在我昨天发表的文章<Python连接SQLServer数据库执行增删改查操作>后,一些读者反馈说跟Python完全没有关系,这里我想说的是:内容的确是与Python ...

最新文章

  1. 提高班第三周周记(中秋第三天)
  2. asp.net2.0如何加密数据库联接字符串
  3. 【java】兴唐第12-14节笔记整理
  4. 你必须会的启发式搜索算法--A*算法
  5. 图像处理:像素间的基本关系
  6. Java基础05 实施接口
  7. 如何搭建安卓开发持续化集成环境(Ubuntu + Jenkins + SonarQube)
  8. java concurrent 框架,java.util.concurrent 包下的 Synchronizer 框架
  9. php项目包导入项目,zend studio导入项目文件的图文操作
  10. Matlab神经网络十讲(2): Create Configuration Train NeuralNet
  11. 项目spring boot 写es hbase 运行内存溢出
  12. ffmpeg检测文件是否损坏_教你一招如何检测硬盘,让你知道硬盘是否有损坏?还有几天寿命?...
  13. 外设驱动库开发笔记8:GPIO模拟I2C驱动
  14. GDB分析PHP连接Memcached 导致coredump问题
  15. javabean反射改字段内容_JSP第三篇「JavaBean的介绍、JSP的行为--JavaBean」(修订版)...
  16. C#序列化与反序列化方式简单总结
  17. eclipse 集成svn客户端_TortoiseSVN及Eclipse的svn插件安装使用
  18. git 使用笔记(一)
  19. scala--模式匹配
  20. 《知识产权知识产权信用管理规定》解读问答

热门文章

  1. MATLAB中颜色和线条对应的标识符
  2. Cannot load excludes configuration file /WEB-INF/decorators.xml as specified in sitemesh.xml or
  3. 【CC3200AI 实验教程12】疯壳·AI语音人脸识别(会议记录仪/人脸打卡机)-语音采集
  4. Basic English : Speaking
  5. 文件或目录损坏且无法读取 chkdsk修复方法
  6. COMTRADE录波文件格式定义
  7. 某医药公司北亚数据恢复报告书
  8. mysql 如何修改数据库表结构_MySQL数据库如何修改表结构
  9. RGB数字信号VESA标准时序verilog设计
  10. android10.0(Q) android11(R) 时区相关问题