Pues el row_number funciona como quieres mira:
Código SQL:
Ver originalCREATE TABLE #temp
(
comp_cod VARCHAR(20),
pres_ano INT,
monto INT
)
INSERT INTO #temp VALUES('nom00744',2011,2345)
INSERT INTO #temp VALUES('nom00744',2011,4567)
INSERT INTO #temp VALUES('nom00744',2011,235)
INSERT INTO #temp VALUES('nom00744',2011,47)
INSERT INTO #temp VALUES('nom00744',2011,235)
INSERT INTO #temp VALUES('nom00744',2011,989)
INSERT INTO #temp VALUES('nom00739',2011,2345)
INSERT INTO #temp VALUES('nom00739',2011,989)
INSERT INTO #temp VALUES('nom00739',2011,99)
SELECT comp_cod,pres_ano, ROW_NUMBER() OVER(partition BY comp_cod ORDER BY pres_ano) AS rn, monto FROM #temp
comp_cod pres_ano rn monto
nom00739 2011 1 2345
nom00739 2011 2 989
nom00739 2011 3 99
nom00744 2011 1 2345
nom00744 2011 2 4567
nom00744 2011 3 235
nom00744 2011 4 47
nom00744 2011 5 235
nom00744 2011 6 989
Saludos!!