El día 25 de febrero de 2011 20:17, Sergio Valdes Hurtado <svh.pg...@gmail.com> escribió: > Estimados, tengo una tabla que contiene los campos: acta (integer), proceso > (integer), estado (integer) y fecha (date), y que van registrando los > distintos estados que toman los procesos relacionados a unas actas de > revisión. > Cada acta puede tener uno o dos procesos y van pasando del estado 1 al > estado 5 y se registra la fecha en que cambia a cada estado > > Necesito una consulta que me permita obtener todas los registros que se > encuentren en etapa 5 y en caso de que exista un acta con dos procesos y > ambos estén en etapa 5, me muestre el que primero llegó a esa etapa (el más > antiguo). > En el caso de los datos de más abajo, lo que necesito es que no muestre los > que están marcados con * > > 1011110002 6265 5 27-01-2011 > 1011110003 6264 5 27-01-2011 > 1011110004 6262 5 27-01-2011 > 1011110005 6269 5 31-01-2011 > 1011110006 6277 5 01-02-2011 > 1011110007 6267 3 28-01-2011 > 1014110006 6270 5 31-01-2011 > 1031110002 6341 5 07-02-2011 > 1031110002 6340 1 15-01-2011 * > 1051110001 6310 5 02-02-2011 * > 1051110001 6315 5 28-01-2011 >
postgres=# select * from actas order by acta; acta | proceso | estado | fecha ------+---------+--------+------------ 1001 | 6310 | 5 | 2011-01-15 1001 | 6310 | 5 | 2011-01-28 1002 | 6265 | 5 | 2011-01-27 1002 | 6264 | 1 | 2011-01-15 1003 | 6264 | 5 | 2011-01-27 (5 filas) postgres=# select acta, min(fecha), proceso,estado from actas where estado = 5 g roup by acta,proceso,estado; acta | min | proceso | estado ------+------------+---------+-------- 1002 | 2011-01-27 | 6265 | 5 1003 | 2011-01-27 | 6264 | 5 1001 | 2011-01-15 | 6310 | 5 (3 filas) Sirve? -- -- Emanuel Calvo Helpame.com - 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