add batch remove batch split batch comment selection show hidden batches hide batch highlight batch
db<>fiddle
donate feedback about
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