DECLARE @test-2 TABLE
(
RowID INT,
DateStamp DATE,
PrevStatus INT,
CurrentStatus INT
);
INSERT INTO @test-2
(RowID, DateStamp, PrevStatus, CurrentStatus)
VALUES
(1, '6/1/2012', NULL, 8),
(2, '6/2/2012', 8, 9),
(3, '6/8/2012', 9, 8),
(4, '6/10/2012', 8, 9),
(5, '6/12/2012', 9, 8),
(6, '6/16/2012', 8, 9),
(7, '6/19/2012', 9, 8);
SELECT * INTO #TEST1 FROM
(
SELECT *
FROM @test-2
WHERE currentstatus = 8
AND PrevStatus IS NOT NULL
)A
select * from #TEST1
;WITH CTE AS
(
SELECT *, ROW_NUMBER() OVER (ORDER BY DateStamp) AS RowNumber
FROM #TEST1
)
SELECT A.RowID,B.rowid,DATEDIFF(dd, A.DateStamp, B.DateStamp) as 'DATEPART'
FROM CTE A
JOIN CTE B
ON A.RowNumber = B.RowNumber - 1
DROP TABLE #TEST1