SQL Server:从一个

时间:2018-05-28 00:25:53

标签: sql-server sql-server-2012

我有用于阅读用户阅读的通用表。在一个表中有一个名为odometerReading的列,用户在其中写入车辆读数。一辆车可以有几个odometerReading个条目。

我想使用此列并在我的#temp表中创建两列。开始K将是最后一个odometerReading(如果有一个先前的记录,这将是读数),结束K(这将是用户放入的当前读数)。如果车辆没有先前的记录,则开始和结束将是相同的。如果车辆有先前的记录,则开始和结束将不同)。

原始SQL语句对我来说太长了。任何帮助您的指导将非常感激。

SELECT 
    #FuelSummary.Code, #FuelSummary.[Driver Name],
    #FuelSummary.[Start K], #FuelSummary.[Start K] AS 'Last K' 
FROM 
    #FuelSummary

enter image description here

1 个答案:

答案 0 :(得分:0)

我认为您正在寻找类似下面的内容

SELECT     
#FuelSummary.Code, #FuelSummary.[Driver Name], 
ISNULL(LAG(#FuelSummary.[Start K]) OVER (ORDER BY #FuelSummary.Code),0) [Start K] , #FuelSummary.[Start K] AS 'Last K' 
FROM #FuelSummary
ORDER BY #FuelSummary.Code