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.,
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, |