No SQL Server 2012+, você pode usar
lag()
. No SQL Server 2008, você pode usar uma subconsulta correlacionada ou uma aplicação externa. Aqui está um método:select documentid, reference,
(select top 1 documentid
from table t2
where t2.reference = t.reference and
t2.documentid < t.documentid
order by documentid desc
) as LastDocumentId
from table t;