Re: Generar registros no existentes en tablas

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

In response to

Browse pgsql-es-ayuda by date

  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