2011-06-04 62 views
2

我有一个数据如下表结构如何使用SQL查询计算表中同一列的运行差异?

ReadingDate Unit 
01-05-2011 10 
01-06-2011 20 
01-07-2011 40 
01-08-2011 40 

,我想用T-SQL查询的结果如下。我使用SQL Server 2008 R2

ReadingDate Unit UnitConsumed 
    01-05-2011 10  10 
    01-06-2011 20  10 
    01-07-2011 40  20 
    01-08-2011 40  0 
+0

关于unitconsumed列从哪里获取数据的更多信息将需要回答您的问题 – Martin 2011-06-04 12:32:11

+0

哦,我看到它是日期之间的差异计算。 – Martin 2011-06-04 12:33:25

回答

1

你可以尝试以下方法:

With tblDifference as 
(
    Select Row_Number() OVER (Order by ReadingDate) as RowNumber,ReadingDate,Unit from TestTable 
) 

Select Cur.ReadingDate, Cur.Unit, ISNULL((Cur.Unit-Prv.Unit),Cur.Unit) as UnitConsumed 
from tblDifference Cur 
Left Outer Join tblDifference Prv 
On Cur.RowNumber=Prv.RowNumber+1 

平原和简单!

+0

谢谢你好工作 – Shamim 2011-06-04 17:59:38

+0

@Mhamhammad Shamim,我的荣幸! – 2011-06-05 18:14:27

相关问题