如何解决计算两个日期之间完成的付款次数 SQL
例如如果第一次付款日期是 28/08/2020,并且后续付款在每个月的 28 日完成。
我想计算到目前为止完成了多少付款。
我试过 select datediff(month,'2020-08-28 00:00:00.000','2021-03-28 00:00:00.000') 它给出了 7,但我希望它是 8。
如果我尝试选择 datediff(month,'2021-04-01 00:00:00.000') 它给出了 8。
我想知道从 28/08/2020 开始的月数。 28/08/2020 应计为 1。
想要的结果如下
28/08/2020 - 1
28/09/2020 - 2
28/10/2020 - 3
28/11/2020 - 4
28/12/2020 - 5
28/01/2021 - 6
28/02/2021 - 7
28/03/2021 - 8
请给点建议。谢谢。
编辑
如果第一次付款日期是 30/01/2020,因为没有 2020 年 2 月 30 日,所以应该取月末日期,并且应该显示为到目前为止已完成 2 次付款。
解决方法
这是您要找的吗?
Declare @dates Table (PaymentDate date);
Insert Into @dates (PaymentDate)
Values ('2020-08-28'),('2020-09-28'),('2020-10-28'),('2020-11-28'),('2020-12-28'),('2021-01-28'),('2021-02-28'),('2021-03-28');
Select *,PaymentCount = datediff(month,min(PaymentDate) over(Order By PaymentDate),PaymentDate) + 1
From @dates;
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。