By using db<>fiddle, you agree to license everything you submit by Creative Commons CC0.
CREATE TABLE T (
caseID INT,
D VARCHAR(5),
Timestamp VARCHAR(5)
);
INSERT INTO T VALUES (1,'D1','T1');
INSERT INTO T VALUES (1,'D2','T2');
INSERT INTO T VALUES (1,'D3','T3');
INSERT INTO T VALUES (1,'D1','T4');
INSERT INTO T VALUES (1,'D3','T5');
INSERT INTO T VALUES (1,'D2','T6');
INSERT INTO T VALUES (1,'D1','T7');
INSERT INTO T VALUES (1,'D2','T8');
INSERT INTO T VALUES (1,'D4','T9');
INSERT INTO T VALUES (2,'D2','T1');
INSERT INTO T VALUES (2,'D1','T2');
INSERT INTO T VALUES (2,'D2','T3');
INSERT INTO T VALUES (2,'D3','T4');
INSERT INTO T VALUES (2,'D1','T5');
INSERT INTO T VALUES (2,'D4','T6');
INSERT INTO T VALUES (2,'D5','T7');
SELECT caseID,
D,
Timestamp
FROM (
select *,(
select TOP 1 D
FROM T tt
WHERE t1.caseID = tt.caseID
and t1.Timestamp < tt.Timestamp
ORDER BY tt.Timestamp
) nextD,(
caseID | D | Timestamp |
---|---|---|
1 | D2 | T2 |
1 | D3 | T3 |
1 | D1 | T4 |
1 | D3 | T5 |
1 | D2 | T6 |
1 | D1 | T7 |
2 | D2 | T1 |
2 | D1 | T2 |
2 | D2 | T3 |
2 | D3 | T4 |
2 | D1 | T5 |
2 | D4 | T6 |