Yo tengo un caso similar, pero no he podido obtener el código correcto, pero igual a tí te sirve el código que tengo, si encuentras como funciona correcto avisame :)

Mira este es el còdigo que mejor me ha funcionado:
Cita: select folio, articulo, descripcionarticulo,
precio, fecha, documento
from (
select ts.folio, ts.articulo, ts.descripcionarticulo, ts.precio,
row_number() over (partition by ts.articulo, st.fecha
order by st.documento desc) x, st.fecha, st.documento
from entradadetalle ts, entradaencabezado st
where st.folio=ts.folio and st.documento='ECPAM') T2
where x < 4
order by articulo desc, fecha desc, folio desc
Este fué mi caso:
[URL="http://www.forosdelweb.com/f87/problemas-con-cursor-850434/"]http://www.forosdelweb.com/f87/problemas-con-cursor-850434/[/URL]
Suerte!