1

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

例如

date1, 11231

date2, 11239

date3, 11341

我想知道是否可以在查询中创建另一列来显示与上一个总数的差异?

我根本无法更改 sql 表的结构,这是否最适合视图?

谢谢你的帮助。

问候

杰森

4

3 回答 3

0

In SQL Server 2012 you could use LAST_VALUE over partitions.

于 2013-02-12T14:03:24.677 回答
0

Use LAG() Analytic function if available in your version of SQL-you did not specify. There is also LEAD() function available...

于 2013-02-12T13:38:46.433 回答
0

我正在尝试一些东西,也许会有所帮助:

表创建

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
于 2013-02-12T13:48:59.560 回答