首页 > 解决方案 > 获取 ms sql 中每一行的一个月前数据

问题描述

如果有人能解决我的问题,这是我谦虚的要求。这将不胜感激。

问题:我有一张包含 id、日期和金额的表格。我想在加入同一张表的另一列中获取相同 id 的一个月前数据,并且一个月前的日期也应该显示在另一列中。实际数据和结果也如下所示。

create table my_table
(
id int,
a_date date,
amount money
)

insert into my_table values (1,'12-31-2020','100')
insert into my_table values (2,'12-31-2020','110')
insert into my_table values (1,'10-31-2020','120')
insert into my_table values (2,'10-31-2020','130')
insert into my_table values (1,'1-31-2021','140')
insert into My_table values (2,'1-31-2021','150')

id  a_date  amount
1   2020-12-31  100.00
1   2020-10-31  120.00
1   2021-01-31  140.00
2   2021-01-31  150.00
2   2020-10-31  130.00
2   2020-12-31  110.00

答案应该是这样的:

id  a_date      amount  a_date_b    amount_b
1   2020-12-31  100.00  2020-11-30  120.00
1   2020-11-30  120.00  2020-10-31  0.00
1   2021-01-31  140.00  2020-12-31  100.00
2   2021-01-31  150.00  2020-12-31  110.00
2   2020-11-30  130.00  2020-10-31  0.00
2   2020-12-31  110.00  2020-11-30  130.00

预先感谢您的支持和帮助。

标签: sql-server

解决方案


推荐阅读