SQL Query添加计算的临时列

时间:2013-02-12 13:22:46

标签: sql

我在查询中返回两列(datetotal)。

e.g。

date1, 11231

date2, 11239

date3, 11341

我想知道我能做的是在查询中创建另一列,向我显示与上一次总数的差异吗?

我根本无法更改sql表的结构,这最适合在视图中使用吗?

感谢您的帮助。

此致

杰森

3 个答案:

答案 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