Zoho Reports:SQL查询 - 查找日期和天数

时间:2018-02-07 06:55:02

标签: sql

问题陈述:我需要找出Over Due开始日期,并且我需要计算超过截止天数。我知道怎么做超过天数,但我无法找到一种方法来找出过期的开始日期。

示例:我们说客户没有支付2017年11月4日,2017年12月4日,2018年1月4日,2018年2月4日的付款。现在这些客户收集表中有4个零收集记录,Over Due中有4个记录带有D标志的集合表。现在2月8日客户支付了分期付款,然后相应的付款记录被放置在集合表中,另一个记录在带有C标志的过期集合中。由于此款项已于2017年11月4日调整,因此超时开始日期为12月4日。假设客户未付款,则将于2017年11月4日作为逾期开始日期。

我有一个贷款管理系统的表格如下:

时间表(付款时间表):将包含所有分期付款,其中包含每月支付的相应金额的日期。

架构:LoanNo, Schedule Date, Installment No, Principle, Interest.

收集的每个月的收款(付款收集)。假设未收到付款,A记录与相应的日期和零金额一起放置。另一条记录将被放置在Over due collections表中,带有D标志和相应的金额。如果发生任何收集,则将插入另一条记录,其中标志C代表集合。

Schema: LoanNo, PaymentReceived Date, Principle, Interest

过期收藏(如果有收据,将会有记录)

Schema: LoanID, Flag(D/C), Date, Principle, Interest

请建议并指导我为此写一个正确的查询

1 个答案:

答案 0 :(得分:0)

这是一个有趣而又容易的问题。您可以通过计算金额的运行总和来解决,然后与客户的总付款进行比较。记录运行金额大于总付款额的所有记录。并选择最短的日期。

如果需要进一步的帮助,请告诉我,我会给你SQL查询。但你应该尝试自己的

编辑1

这将为您提供running_sum

_______Subquery1_______
select a.LoanNO,a.Scheduledate,a.Amount,sum(b.amount)run_sum from   
Paymentschedule a 
join PayamentSchedule b 
on a.LoanNo=b.LoanNo and a.ScheduleDate>b.ScheduleDate and 
a.ScheduleDate<=now() group by 1,2,3

贷款总收款

_______subquery 2_____
select LoanNo,sum(amount)total collection from collection group by 1

现在

 select a.LoanNo,min(ScheduleDate) overduestartdate  from subquery1 join subquery2 on 
 a.LoanNO=b.LoanNO 
and a.run_sum>b.Collection group by 1

根据您的架构进行修改