Probaste con:

SELECT DISTINCT ON (id_parte) id_parte, anno, mes, valor
from tabla
order by id_parte, ano, mes DESC

Saludos,

Marcos Rios.
Arequipa - Peru


Raúl Andrés Duque Murillo escribió:
Cordial saludos compañeros. Tengo el siguiente problema y aunque lo he solucionado se me hace bastante pesado para la cantidad de registros que tengo, por lo cual quisiera saber si a alguien se le ocurre una mejor alternativa o algún artificio útil: Tengo una tabla más o menos así: id_parte anno mes valor
1              2005    1        5
1              2005    2        10
2              2008    5        20
2              2008    6        30
3              2008    4        40
Lo que quiero es obtener el último valor (Anno/Mes) por cada parte. Para el ejemplo: la salida sería: id_parte anno mes valor
1              2005    2        10
2              2008    6        30
3 2008 4 40 Por ahora lo que hago es algo de este estilo: SELECT tabla.id_parte, tabla.anno, tabla.mes, tabla.valor
FROM    (
SELECT tabla.id_parte, MAX(tabla.anno*100 + tabla.mes) AS AnnoMes
                    FROM tabla
                    GROUP BY tabla.id_parte
) maxtabla INNER JOIN tabla ON tabla.id_parte = maxtabla.id_parte AND AnnoMes = (tabla.anno*100 + tabla.mes) Atentamente, RAUL DUQUE Bogotá, Colombia

__________ Información de ESET Smart Security, versión de la base de firmas de virus 3356 (20080814) __________

ESET Smart Security ha comprobado este mensaje.
http://www.eset.com
--
TIP 1: para suscribirte y desuscribirte, visita 
http://archives.postgresql.org/pgsql-es-ayuda

Responder a