En SQL Server 2012+ puede usar lag()
. En SQL Server 2008, puede usar una subconsulta correlacionada o una aplicación externa. Aquí hay un 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;