该表有像open_date,close_date,first_disb_date这样的信息,当我尝试比较prev_loan.date_last_disb < Curr_loan.date_acct_open时,我会得到我想要的结果,但如果客户在同一日期获得了两笔贷款,当我只需要当前贷款之前的最后一笔贷款时,我会得到两个账号
SELECT ds.cust_id,
dt.acct_no curr_loan,
ds.acct_no prev.loan
FROM acct_dtls dt
INNER JOIN acct_dtls ds
ON (dt.cust_id = ds.cust_id)
WHERE dt.date_last_disb IS NOT NULL
AND ds.date_last_disb =
(SELECT MAX(s.date_last_disb)
FROM acct_dtls s
WHERE s.cust_id = dt.cust_id
AND s.date_last_disb < dt.date_last_disb)
2条答案
按热度按时间bwleehnv1#
ijxebb2r2#
对于每个客户,您需要一个包含最终和倒数第二个贷款的结果行。实现此目的的一种方法是使用
LAG
获取行的precedent,使用LEAD
获取行的successor: