在T-SQL中生成日期序列

问题描述 投票:1回答:1

在购买记录中,我想生成一个比基准日期晚+/- 12个月的序列

Client Date 
Joe    2020-03-15
Maria  2019-11-01

所以期望的结果将是

Client Date 
Joe    2019-03-15
Joe    2019-04-15
.
.
.
Joe    2020-03-15
.
.
.
Joe    2021-02-15
Joe    2021-03-15
Maria  2018-11-01
Maria  2018-12-01
.
.
.
Maria  2019-11-01
.
.
.
Maria  2020-10-01
Maria  2020-11-01

如何实现?

sql tsql date select recursive-query
1个回答
0
投票

一个选项使用递归查询:

with cte as (
    select client, dateadd(month, -12, date) date, 0 lvl from mytbale
    union all
    select client, dateadd(month, 1, date), lvl + 1 from cte where lvl < 24
)
select * from cte order by client, date
© www.soinside.com 2019 - 2024. All rights reserved.