| From: | Horacio Miranda <hmiranda(at)gmail(dot)com> |
|---|---|
| To: | "Ivan Perales M(dot)" <ivan(dot)perales(at)gmail(dot)com>, Ayuda Esp PostgreSQL <pgsql-es-ayuda(at)postgresql(dot)org> |
| Subject: | Re: Convertir array en columnas |
| Date: | 2024-07-06 04:07:39 |
| Message-ID: | 2359229a-5c98-4223-ac3b-4bb2c1916df7@gmail.com |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-es-ayuda |
Revisa el concepto de pick out. las cajas las abres y generas la lista
de materiales que esta adentro de la caja.
Esa debiera ser tu unidad, no las cajas.
On 6/07/2024 3:42 pm, Ivan Perales M. wrote:
> Creo saber la respuesta, pero como quiera no se pierde nada con preguntar.
>
> La mayoria de reportes que piden los usuarios son a excel y yo
> normalmente lo genero en programación, consulto a la bd, proceso los
> datos y genero el archivo de excel a gusto: formulas aqui y alla, me
> brinco lineas para dejar separaciones, ancho de columnas, formatos
> condicionales.. todo lo que ocupe.
>
> Recientemente me pidieron implementar un BI y he estado viendo
> opciones, todos sin excepción consultan la información directo de la
> BD y los resultados los muestran en tablas, algunos dan la opción de
> transformar esos datos antes de mostrarlos, (pero aun no he llegado a
> esta parte aun en un par de BI's que estoy analizando).
>
> El asunto es que tengo que mostrar un listado, digamos de cuantos
> movimientos hubo en el mes de los materiales, pero en nuestro sistema
> un material se divide en Cajas, por lo tanto los movs de inventario
> son para esas cajas, y aparte de mostrar el numero de movimientos
> tengo que mostrar todas las cajas que se movimiento, esa consulta la
> tengo asi:
>
> select m.codigo, m.descripcion, count(*), array_agg(distinct e.caja_id
> order by e.caja_id)
> from movimiento e
> left join material m on m.id <http://m.id> = e.material_id
> where e.fecha between :from and :to
> group by m.codigo, m.descripcion
>
> esto me da la información que necesito, pero las distintas cajas que
> se movieron aparecen en una sola columna de tipo array que yo mediante
> codigo la puedo extraer y agregar en columnas en el archivo de excel.
> La pregunta seria, hay alguna manera en que postgres me separe este
> array, o mejor digo, alguna función que en lugar de que me cree un
> array agregue columnas? a sabiendas de que un material podria tener
> solo 2 cajas que se movieron (serian solo 2 columnas) y habrá
> materiales que movieron 50 cajas (habría 50 columnas).
>
> Si esto no es posible directo en postgres, entonces tendria que buscar
> si en el BI puede hacerse esto mediante alguna clase de transformación
> de los datos.
>
> Muchas gracias por su tiempo.
>
> Saludos
>
>
> --
> Lindolfo Iván Perales Mancinas
> Solo existen 10 tipos de personas en el mundo, las que saben binario y
> las que no.
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Javier Jimenez Matilla | 2024-07-06 10:02:52 | RE: Convertir array en columnas |
| Previous Message | Ivan Perales M. | 2024-07-06 03:42:01 | Convertir array en columnas |