我一直是这个论坛的长期读者,它对我有很大帮助,但是我有一个问题我找不到特定于我的要求的解决方案,所以这是我第一次不得不问任何问题。我有一个选择语句,它返回按日期排序的仪表读数(顶部的最新读数),在 99.9% 的情况下,仪表读数总是随着日期的推移而上升,但是由于系统错误偶尔会下降,我需要为了确定下面行中的读数(先前读数)大于最新读数(当前单元格)的实例,我遇到了 LEAD 函数,但它仅在 Oracle 或 SS-MS-2012 中,我使用的是 SS- MS-2008。这是我的选择语句的简化版本:
SELECT Devices.SerialNumber,
MeterReadings.ScanDateTime,
MeterReadings.TotalMono,
MeterReadings.TotalColour
FROM dbo.MeterReadings AS MeterReadings
JOIN DBO.Devices AS Devices
ON MeterReadings.DeviceID = Devices.DeviceID
WHERE Devices.serialnumber = 'ANY GIVEN DEVICE SERIAL NUMBER'
AND Meterreadings.Scandatetime > 'ANY GIVEN SCAN DATE TIME'
ORDER BY MeterReadings.ScanDateTime DESC, Devices.SerialNumber ASC