Вы можете попробовать следующее:
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
Просто и понятно!