मैं आपको इस उद्देश्य के लिए एक दृश्य का उपयोग करने की सलाह देता हूं:
CREATE VIEW Table1_vw
AS
WITH cte AS (
SELECT *,
ROW_NUMBER() OVER (ORDER BY RecordTime) AS rn
FROM dbo.Table1
)
SELECT mc.RecordTime,
mc.Running,
mc.Fault,
DATEDIFF(second, mc.RecordTime, mp.RecordTime) Diff
FROM cte mc
LEFT JOIN cte mp
ON mc.rn = mp.rn - 1
चूंकि आप SQL Server 2012 का उपयोग कर रहे हैं आप LEAD का उपयोग कर सकते हैं समारोह:
CREATE VIEW Table1_vw
AS
SELECT RecordTime,
Running,
Fault,
DATEDIFF(second,RecordTime,LEAD(RecordTime,1,NULL) OVER (ORDER BY RecordTime ASC) ) as Diff
FROM Table1
GO