繁体   English   中英

计算两个日期之间完成的付款次数 SQL

[英]Calculate number of payments done between two dates SQL

我想计算 SQL 中两个日期之间的付款次数,包括开始日期。

例如,如果第一个付款日期是 2020 年 8 月 28 日,随后的付款在每个月的 28 日完成。

我想计算到目前为止完成了多少付款。

我试过 select datediff(month,'2020-08-28 00:00:00.000','2021-03-28 00:00:00.000') 它给出 7,但我希望它是 8。

如果我尝试 select datediff(month,'2020-08-28 00:00:00.000','2021-04-01 00:00:00.000') 它给出 8。

我想知道从 28/08/2020 开始的月数。 2020 年 8 月 28 日应计为 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

请您给点建议。 谢谢你。

编辑

如果第一个付款日期是 2020 年 1 月 30 日,因为没有 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;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM