From: | Gerardo Herzig <gherzig(at)fmed(dot)uba(dot)ar> |
---|---|
To: | Wilmer Garcia <wilmeruribe777(at)gmail(dot)com> |
Cc: | pgsql-es-ayuda(at)postgresql(dot)org |
Subject: | Re: Generar registros no existentes en tablas |
Date: | 2018-04-25 22:32:24 |
Message-ID: | 1779112565.34493.1524695544828.JavaMail.zimbra@fmed.uba.ar |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
----- Mensaje original -----
> De: "Wilmer Garcia" <wilmeruribe777(at)gmail(dot)com>
> Para: pgsql-es-ayuda(at)postgresql(dot)org
> Enviados: Miércoles, 25 de Abril 2018 16:48:54
> Asunto: Generar registros no existentes en tablas
>
> Saludos desde Venezuela, acudo a ustedes para solicitar su orientación
> respecto a un requerimiento que no he podido resolver.
>
> Se necesita generar un reporte de nomina donde se refleje el ingreso total
> mensual de un trabajador en los últimos 6 años.
>
> Siempre se deben generar 6 columnas (los seis años) y 12 registros que
> corresponden a los 12 meses.
>
> En el caso que un trabajador solo trabajó 5 meses, igual se debe rellenar
> las 6 columnas (años) por cada 12 registros (meses) y donde no se obtenga
> datos, se rellena con valor cero (0).
>
> En la base de datos donde se extrae la información no existe una tabla
> donde esté definido un calendario.
>
> El problema que no he logrado resolver, es cómo generar los doce registros
> para los casos en que una persona trabajó menos de un año.
>
> Un intento fue utilizar un generate_series(1,12) como parte del FROM pero
> no encuentro como vincularlo a la tabla donde esta la referencia a las
> fechas de los registros de cobro del trabajador.
>
> Creo que se puede resolver con plpgsql pero quiero saber sin con SQL hay
> solución antes de indagar a otro nivel.
>
> Se utiliza PostgreSQL 9.1 sobre Debian 8
>
> Espero haber logrado hacerme entender, agradecido de antemano por su
> atención.
>
> --
> *WILMER GARCIA*
>
Para esta clase de casos, generalmente se recurre a crosstab para generar lo que llaman un "pivot":
https://www.postgresql.org/docs/current/static/tablefunc.html
HTH
Gerardo
From | Date | Subject | |
---|---|---|---|
Next Message | Alvaro Herrera | 2018-04-26 13:22:01 | Re: Generar registros no existentes en tablas |
Previous Message | Wilmer Garcia | 2018-04-25 19:48:54 | Generar registros no existentes en tablas |