El 05/01/2011 16:27, Guillermo Villanueva escribió:
mmm se me ocurre algo así...
sirve? probalo
select
(select count(*)
from historico b
where b.ref = a.ref and b.oper>=a.oper) cantidad,
oper,
ref,
fecha
from
historico a
where cantidad between 1 and 3
order by ref, oper desc
Parece que funciona, quedaría así:
select
operacion, referencia, fecha
from
historico h
where
( select count(*)
from historico h2
where h2.producto = h.producto and h2.fecha > =h.fecha
) < 4
order by
referencia, fecha desc
Esta es otra solución parecida, en la que estaba trabajando, y que
también funciona:
select
operacion, referencia, fecha
from
historico h
where
operacion in (
select h2.id
from historico h2
where h2.producto = h.producto
order by fecha desc
limit 3)
order by
referencia, fecha desc
Gracias a todos los que os habéis interesado en este problema, aunque me
parece que lo ideal seria actualizar y utilizar window functions.
Saludos,
--
Oswaldo Hernández
-
Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda@postgresql.org)
Para cambiar tu suscripción:
http://www.postgresql.org/mailpref/pgsql-es-ayuda