在购买记录中,我想生成一个比基准日期晚+/- 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
如何实现?
一个选项使用递归查询:
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