SQL查询:识别贷款非启动者并查找十笔付款

时间:2018-03-21 17:03:26

标签: sql zoho

我需要确定贷款时间表不起作用的客户,这意味着他没有支付第一个EMI时间表。我需要知道谁是所有付费的10 EMI计划而不是付费客户。

注意:这需要使用简单的查询语句来实现。我无法使用PARTITION,OVER,LAG类关键字。我可以使用UNION,JOIN,LEFT JOIN和INNER JOIN。

对于第一个非启动客户,我写了一个这样的查询,但我怀疑我错过了一些记录:

    SELECT  a.LoanID, 
            if(Case when a.SchedulePaymentDate  = b.TransactionDate AND a.DemandAmount - b.Collectionamount  = 0 then a.InstallmentNo end, 0, 1) as NonStarter 
   FROM  Schedule a 
     JOIN Collection b ON a.LoanID = b.LoanID AND   a.InstallmentNo  = 1

我不确定这是否有效,但我正在做的是,检查第一个计划日期和收集日期匹配并从需求中减去收集金额应该为零然后我说一个标志0 Loan Starter否则标志为1,因此他是贷款的非启动者。

对于第二个,我们确定我们是否收集了10个EMI /时间表? 我能够编写查询以获得汇总值,直到10 EMI和第10 EMI的日期,但我没有得到如何加入或应用这些10 EMI需求的条件?我需要知道收集了10个Emis的两个lOans。 EMI计划通常为18至24个月。

请给我更好的方法,不要错过任何贷款,无论贷款入门和非首发。

下面给出的表格式:

Schedule: LoanID, PaymentDate, DemandAmount, InstallmentNo
Collection: LoanID, TransactionDate, CollectionAmount

提前致谢。

1 个答案:

答案 0 :(得分:0)

  1. 按如下方式完成非起动器:
  2. 选择LoanID,           if(SUM(CollectionAmount)= 0,1,0)来自Collection的NonStarter

    由此我可以识别非贷款的起始者。

    1. 10付EMI:

      选择LoanID,if(SUM(Collection)= SUM(Demand),1,0)作为DemandCollected,来自Demand LeftLIN Collection,Collection.Loand = Demand.Loanid和Demand.InstallmentNo< = 10

    2. 希望这有帮助