小编TOl*_*sen的帖子

从每个月获取最后记录

不幸的是,SQL并不是很容易找到我.我有两张桌子,一张Loan桌子和一张LoanPayments桌子.

LoanPayments表:

ID(主键),LoanID(与贷款表上的ID匹配),PaymentDate,Amount等.

我需要一个sql语句,它可以给我每月输入的最后一笔付款(如果有的话).我目前的陈述并没有给我结果.还有一个问题是,有时候那个月的最大日期会有一个平局,所以我也需要能够处理它(我的想法是在平局的情况下选择最大的ID).

这是我到目前为止(我知道这是错的,但我不知道为什么.):

SELECT lp.ID, lp.LoanID, lp.PaymentDate 
FROM LoanPayments lp 
WHERE lp.PaymentDate in (
                          SELECT DISTINCT MAX(PaymentDate) as PaymentDate 
                          FROM LoanPayments 
                          WHERE IsDeleted = 0
                          AND ReturnDate is null 
                          GROUP BY YEAR(PaymentDate), Month(PaymentDate)
                        ) 
AND CAST(PaymentDate as date) >= CAST(DATEADD(mm, -24, GETDATE()) as date)
Run Code Online (Sandbox Code Playgroud)

最后一部分只是过滤它,所以我只收到过去24个月的付款.感谢您的帮助,并花时间帮助我解决这个问题.

sql t-sql sql-server-2008 greatest-n-per-group

0
推荐指数
1
解决办法
7199
查看次数