Sql server 2008 如何使用SQL查询计算表中同一列的运行差异?
我有如下表结构,数据如下Sql server 2008 如何使用SQL查询计算表中同一列的运行差异?,sql-server-2008,Sql Server 2008,我有如下表结构,数据如下 ReadingDate Unit 01-05-2011 10 01-06-2011 20 01-07-2011 40 01-08-2011 40 我想用T-Sql查询得到以下结果。我正在使用SQLServer2008R2 ReadingDate Unit UnitConsumed 01-05-2011 10 10 01-06-2011 20 10 01-07-2
ReadingDate Unit
01-05-2011 10
01-06-2011 20
01-07-2011 40
01-08-2011 40
我想用T-Sql查询得到以下结果。我正在使用SQLServer2008R2
ReadingDate Unit UnitConsumed
01-05-2011 10 10
01-06-2011 20 10
01-07-2011 40 20
01-08-2011 40 0
您可以尝试以下方法:
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
简单明了 这可以在SQL Server中使用LAG函数完成。请参阅。回答您的问题时,需要更多关于unitconsumed列数据来源的信息。哦,我知道这是日期之间的差异计算。@Mohammad Shamim,我的荣幸!