Cli*_*ehl 1 sql t-sql sql-server
我试图用当前时间段的值减去过去时间段的值。
*这就是我所拥有的:
Date, present, past (identical to present)
Jan, 100, 100
Feb, 200, 200
March, 300, 300
April, 400, 400
Run Code Online (Sandbox Code Playgroud)
*这就是我要的;
Date, present, past (past column shifted down 1 row)
Jan, 100, 0
Feb, 200, 100
March, 300, 200
April, 400, 300
Run Code Online (Sandbox Code Playgroud)
代码示例:
SELECT
[month],
sum([money]) as present,
sum([money]) as past
FROM database
group by [month]
Run Code Online (Sandbox Code Playgroud)
The*_*ler 11
您可以使用该LAG()函数,如下所示:
select
d,
present,
lag(past, 1, 0) over (order by d) as past
from t
order by d
Run Code Online (Sandbox Code Playgroud)
结果:
d present past
---------- ------- ----
2019-01-01 100 0
2019-02-01 200 100
2019-03-01 300 200
2019-04-01 400 300
Run Code Online (Sandbox Code Playgroud)
请参阅SQL Fiddle。
作为记录,这是数据脚本:
create table t (
d date,
present int,
past int
);
insert into t (d, present, past) values ('2019-01-01', 100, 100);
insert into t (d, present, past) values ('2019-02-01', 200, 200);
insert into t (d, present, past) values ('2019-03-01', 300, 300);
insert into t (d, present, past) values ('2019-04-01', 400, 400);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
17285 次 |
| 最近记录: |