我正在努力编写一个SQL查询,该查询将识别在短时间内(例如60天)内已提取多笔贷款的客户。
MyTable
CREATE TABLE [dbo].[MyTable](
[Customerid] [numeric](18, 0) NOT NULL,
[Date Open] [date] NOT NULL,
[Date Closed] [date] NOT NULL,
[Rank] [varchar](50) NOT NULL
) ON [PRIMARY]
例如-客户编号1已开了多笔贷款,开出日期说12/01 / 2017、12 / 02 / 2017、13 / 04/2018等。我需要找到60天内已下一笔贷款(开日期)的客户。 / p>
答案 0 :(得分:0)
看起来您可以使用简单的INNER JOIN
来完成此操作。我不确定Rank
在您的表中所表示的含义,但是如果他们不能在同一天提取两笔贷款,则类似下面的内容应该起作用。
SELECT DISTINCT yt1.Customerid
FROM yourtable yt1
INNER JOIN yourtable yt2 ON yt2.Customerid = yt1.Customerid AND
yt2.[Date Open] > yt1.[Date Open] AND
yt2.[Date Open] <= DATEADD(DAY, 60, yt1.[Date Open])