2008/8/14 Raúl Andrés Duque Murillo <[EMAIL PROTECTED]>:
> 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


Raul:

La semana pasada alguien tenia un problema similar, quiza si ves en el
historico de la lista te puede dar un indicio...

Slds.

----------------------
Slds.
jchavez
linux User #397972 on http://counter.li.org/
--
TIP 5: ¿Has leído nuestro extenso FAQ?
         http://www.postgresql.org/docs/faqs.FAQ.html

Responder a