金蝶Cloud 应收账龄分析表-按到期日查询SQL
金蝶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相关推荐
- sql azure 语法_如何使用Azure门户,Cloud Shell和T-SQL复制Azure SQL数据库
sql azure 语法 This article will provide an overview covering programmatically moving databases on the ...
- 吉客云与金蝶云星空对接集成分页查询出库单连通采购退货新增(JackYun-采购退料OK)
吉客云与金蝶云星空对接集成分页查询出库单连通采购退货新增(JackYun-采购退料OK) 数据源系统:吉客云 "吉客云"是一站式企业数字化解决方案系统,可实现业务.财务.办公.人事 ...
- 如何定位并优化慢查询Sql
根据慢日志定位慢查询SQL. 查询慢日志相关变量,并进行设置: 主要关注下述三个变量: long_query_time.show_query_log_file.show_query_log 慢查询sq ...
- 面试官:说说一条查询sql的执行流程和底层原理?
作者:孤独烟,资深后端工程师,业内知名原创作者 一条查询SQL执行流程图如下 本文改编自<高性能Mysql>,烟哥用小说的形式来讲这个内容. 序章 自我介绍 我是一条sql,就是一条长长的 ...
- 深度 | 一条查询SQL的前世今生 —— ClickHouse 源码阅读
作者:逍凯,阿里云数据库实习开发工程师 注:以下分析基于开源 v19.15.2.2-stable 版本进行,社区最新版本代码改动较大,但是总体思路是不变的. 01 用户提交一条查询SQL背后发生了什么 ...
- cad模糊查询符号_万能模糊查询SQL
****************************************************************** * 功能:万能模糊查询SQL * 时间:2015/1/30 16: ...
- 面试mysql慢查询_剑指Offer面试题:如何定位并优化慢查询sql
1.根据慢日志定位慢查询sql 使用以下命令查看相关系统变量属性: show variables like '%query%'; 主要看这三个属性: long_query_time : 10.0000 ...
- mysql 查询后怎么定位列_MySQL如何定位并优化慢查询sql
1.如何定位并优化慢查询sql a.根据慢日志定位慢查询sql SHOW VARIABLES LIKE'%query%' 查询慢日志相关信息 slow_query_log 默认是off关闭的, ...
- 原生sql 查询返回一个实体_python连接SQLServer执行给定的查询SQL语句,并返回结果数据...
今天写这篇文章的初衷就是在我昨天发表的文章<Python连接SQLServer数据库执行增删改查操作>后,一些读者反馈说跟Python完全没有关系,这里我想说的是:内容的确是与Python ...
最新文章
- 提高班第三周周记(中秋第三天)
- asp.net2.0如何加密数据库联接字符串
- 【java】兴唐第12-14节笔记整理
- 你必须会的启发式搜索算法--A*算法
- 图像处理:像素间的基本关系
- Java基础05 实施接口
- 如何搭建安卓开发持续化集成环境(Ubuntu + Jenkins + SonarQube)
- java concurrent 框架,java.util.concurrent 包下的 Synchronizer 框架
- php项目包导入项目,zend studio导入项目文件的图文操作
- Matlab神经网络十讲(2): Create Configuration Train NeuralNet
- 项目spring boot 写es hbase 运行内存溢出
- ffmpeg检测文件是否损坏_教你一招如何检测硬盘,让你知道硬盘是否有损坏?还有几天寿命?...
- 外设驱动库开发笔记8:GPIO模拟I2C驱动
- GDB分析PHP连接Memcached 导致coredump问题
- javabean反射改字段内容_JSP第三篇「JavaBean的介绍、JSP的行为--JavaBean」(修订版)...
- C#序列化与反序列化方式简单总结
- eclipse 集成svn客户端_TortoiseSVN及Eclipse的svn插件安装使用
- git 使用笔记(一)
- scala--模式匹配
- 《知识产权知识产权信用管理规定》解读问答
热门文章
- MATLAB中颜色和线条对应的标识符
- Cannot load excludes configuration file /WEB-INF/decorators.xml as specified in sitemesh.xml or
- 【CC3200AI 实验教程12】疯壳·AI语音人脸识别(会议记录仪/人脸打卡机)-语音采集
- Basic English : Speaking
- 文件或目录损坏且无法读取 chkdsk修复方法
- COMTRADE录波文件格式定义
- 某医药公司北亚数据恢复报告书
- mysql 如何修改数据库表结构_MySQL数据库如何修改表结构
- RGB数字信号VESA标准时序verilog设计
- android10.0(Q) android11(R) 时区相关问题