RE: Consulta agrupadas por valores consecutivos

From: Mario Ulloa <pelluco_(at)hotmail(dot)com>
To: "pgsql-es-ayuda(at)postgresql(dot)org" <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: RE: Consulta agrupadas por valores consecutivos
Date: 2015-08-27 17:52:09
Message-ID: COL126-W106F994F31F9425936FB15FC6F0@phx.gbl
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Muchas gracias alvaro..por lo que vi, no llego muy claro mi correo, se desconfiguro.. lei tu respuesta voy a intentar hacer algo con lo que me indicas.. pero ademas aprovecho de enviar un link con una imagen que deja mucho mas claro lo que necesito.. desde ya muchisimas gracias por el tiempo y el conocimiento.
link: http://i.imgur.com/exDDQOs.png?1

> Date: Thu, 27 Aug 2015 13:53:09 -0300
> From: alvherre(at)2ndquadrant(dot)com
> To: mariolos(at)gmail(dot)com
> CC: pgsql-es-ayuda(at)postgresql(dot)org
> Subject: Re: [pgsql-es-ayuda] Consulta agrupadas por valores consecutivos
>
> Mario Ulloa escribió:
> > Estimados tengo una lista de registro la cual debo resumir por valores consecutivos, en este caso, en el numero de cajael resultado que tengo actual de mi sql es:
> > lote_completo |cod_guia|caja inicial |caja final |count|des_prod 150731012521301|42012 |50434 |50507 |66 |MERLUZA DEL SUR150731012521201|41934 |50498 |50502 |5 |MERLUZA DEL SUR150731012521101|42010 |50503 |50505 |3 |MERLUZA DEL SUR
> > y lo que se espera es el resultado de mas abajo: debido a que para la guía 42012 hay un salto de la caja 50497 a la 50506.El orden del listado lo dan las cajas de menor a mayor,.
> > lote_completo |cod_guia|caja inicial |caja final |count|des_prod
> > 150731012521301| 42012| 50434 | 50497| 64 |MERLUZA DEL SUR150731012521201| 41934| 50498 | 50502| 5 |MERLUZA DEL SUR150731012521101| 42010| 50503 | 50505| 3 |MERLUZA DEL SUR150731012521301| 42012| 50506 | 50507| 2 |MERLUZA DEL SUR
> > la consulta que llevo por el momento es:
> > Select substring(to_char(packing_acum.lote,'FM9999999999') from 3 for 7) ||case when to_char(packing_acum.cod_prod,'FM9999') < '10' THEN '0'||to_char(packing_acum.cod_prod,'FM9999') ELSE to_char(packing_acum.cod_prod,'FM9999')end || to_char(packing_acum.cod_pesaje,'FM99999999')||'0'||to_char(packing.tipo,'FM9999') as lote_completo,m_pesaje.cod_guia,
> > min(packing_acum.corr),max(packing_acum.corr),count(packing_acum.corr),producto.des_prod ,case when packing.tipo = 1 THEN 'ENFRIADO REFRIGERADO' ELSE 'CONGELADO' end as estado_fresco_o_congelado
> > From m_pesaje inner join ( producto inner join (packing inner join packing_acum on packing.cod_packing = packing_acum.cod_packing) on packing_acum.cod_prod = producto.cod_prod) on packing_acum.cod_pesaje = m_pesaje.cod_pesaje where packing_acum.estado = 5668 and packing_acum.cod_prod <> 0 group by lote_completo, m_pesaje.cod_guia, producto.des_prod,estado_fresco_o_congelado,packing_acum.lote
> > order by min(packing_acum.corr),max(packing_acum.corr)
> > espero se entiendo, muchas gracias.,
>
> Creo que lo que tienes que hacer es dividir cada guía en muchas cajas
> (es decir un join con generate_series, o algo de ese tipo, de manera que
> cada guía retorne un conjunto de filas), luego hacer un join de las
> cajas con el intervalo definido por "caja inicial" y "caja final"; luego
> haces una agregación que retorne guías agrupadas en grupos consecutivos
> de cajas. El problema completo se ve muy difícil, pero si consideras un
> paso a la vez, cada paso parece razonable de atacar.
>
> Ahora, lo cierto es que no está claro que el modelo de datos sea
> realmente adecuado. Quizás deberías considerar la idea de modelar un
> poco mejor antes de almacenar (en terminología ETL, un poco de T antes
> de L).
>
> Espero se entiendo ...
>
> --
> Álvaro Herrera http://www.2ndQuadrant.com/
> PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services
>
> -
> Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda(at)postgresql(dot)org)
> Para cambiar tu suscripción:
> http://www.postgresql.org/mailpref/pgsql-es-ayuda

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Alvaro Herrera 2015-08-27 18:02:06 Re: Consulta agrupadas por valores consecutivos
Previous Message Mario Ulloa 2015-08-27 17:48:55 Re: Consulta agrupadas por valores consecutivos