Declare @t table([ID] int, [Cde] int, [User] varchar(6), [Scr] int, [Seq] int);
INSERT INTO @t([ID], [Cde], [User], [Scr], [Seq])
VALUES
(1, 1, 'James', 110, 19),
(2, 1, 'James', 85, 20),
(3, 1, 'James', 99, 21),
(4, 1, 'James', 99, 22),
(5, 1, 'James', 0, 23),
(6, 2, 'Andrew', 88, 19),
(7, 2, 'Andrew', 88, 20),
(8, 2, 'Andrew', 88, 21),
(9, 2, 'Andrew', 0, 22),
(10, 2, 'Andrew', 0, 23),
(11, 3, 'David', 0, 19),
(12, 3, 'David', 95, 20),
(13, 3, 'David', 95, 21),
(14, 3, 'David', 0, 22),
(15, 3, 'David', 0, 23);
Select [ID], [Cde], [User], [Scr], [Seq] From
(Select Rn = Row_Number()Over(Partition By [User] Order By Seq Desc,[User]) , *
From @t
Where Scr <> 0) x Where x.Rn = 1 Order By 5 Desc,3