Consulta agrupadas por valores consecutivos

From: Mario Ulloa <mariolos(at)gmail(dot)com>
To: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Consulta agrupadas por valores consecutivos
Date: 2015-08-27 00:48:23
Message-ID: CAOEiKr0bB-V8i9JnNQaMZGgWGjptSNN4FV7H89L=Ftjvqna+WA@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Estimados tengo una lista de registro la cual debo resumir por valores
consecutivos, en este caso, en el numero de caja
el 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 SUR
150731012521201|41934 |50498 |50502 |5 |MERLUZA DEL SUR
150731012521101|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 SUR
150731012521201| 41934| 50498 | 50502| 5 |MERLUZA DEL SUR
150731012521101| 42010| 50503 | 50505| 3 |MERLUZA DEL SUR
150731012521301| 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.,

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Mario Ulloa 2015-08-27 00:52:20 Consulta agrupadas por valores consecutivos
Previous Message Yosip Curiel 2015-08-26 21:57:42 Re: pgAdmin Error: "Slony-I creation scripts not available;only joining possible" Slony-I en WIndows 7,