私はこのフォーラムの長年の読者であり、非常に役に立ちましたが、自分の要件に固有の解決策が見つからないという質問があるため、何かを尋ねなければならないのはこれが初めてです。日付でソートされた検針値を返す select ステートメントがあります (最新の検針値が一番上に表示されます)。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