【发布时间】:2019-03-15 11:10:53
【问题描述】:
我有一个名为loansRepaid 的表,如下所示,我需要编写如下所述的查询。
loanid repaidday dueday settleday payratio
301 2018-09-23 2019-02-10 14 0.0
302 2018-02-12 2018-02-24 88 0.0
303 2018-02-12 2018-02-12 -20 0.0
301 2018-02-12 2018-02-12 7 0.0
306 2018-02-12 2018-02-12 -2 1.1
我需要隔离每笔贷款的第一笔付款。我需要使用 loanId、min 函数和 group by 来做到这一点。所有的第一笔付款都应该存储在一个临时表中。
注意第一笔付款是与贷款相关的最早到期日的付款。
那么。我需要将创建的临时表与上述的 loanRepaid 表连接起来。我可以通过加入两个表来做到这一点,这两个表的付款日期与相应的贷款ID 的最短截止日期相匹配。
我还需要选择与每笔贷款的第一笔付款相关的所有变量,为每笔贷款创建一个名为 paydefault 的新变量,如果结算日与第一笔付款相关,则该变量持有 (1)大于 7 或为空,否则保持 (0)。也就是说,如果第一笔付款是在到期日后 7 天支付的,或者根本没有支付。
这是我写的一个查询,但我目前卡住了,不知道从这里去哪里。
with firstPay as ( select loanId, min(dueday) as dueday
from loansRepaid
group by loanId
)
select * from firstPay as FP
join loansRepaid as Lp
on FP.loanId = Lp.loanId
and FP.dueDate = LP.dueDate
我也收到错误消息 - 结果中的列名重复不受支持。
【问题讨论】: