我在查询中返回两列(date
和total
)。
e.g。
date1, 11231
date2, 11239
date3, 11341
我想知道我能做的是在查询中创建另一列,向我显示与上一次总数的差异吗?
我根本无法更改sql表的结构,这最适合在视图中使用吗?
感谢您的帮助。
此致
杰森
答案 0 :(得分:0)
如果您的SQL版本中没有指定,请使用LAG()分析函数。还有LEAD()功能......
答案 1 :(得分:0)
我正在尝试一些事情,也许会有所帮助:
TABLE CREATION
create table Demo (TotalDate date, Total int);
insert into Demo(TotalDate, Total)
values ('2012-01-01', 11000);
insert into Demo(TotalDate, Total)
values ('2012-02-02', 12000);
insert into Demo(TotalDate, Total)
values ('2012-03-03', 14000);
选择查询
SELECT
TotalDate ,
Total,
(SELECT TOP 1 d.Total - d1.Total
FROM Demo d1 WHERE d1.TotalDate < d.TotalDate ORDER BY d.TotalDate ASC) AS SubTotal
FROM
Demo d
答案 2 :(得分:0)
在SQL Server 2012中,您可以使用LAST_VALUE over partitions。