----- Mensaje original -----
> De: "Wilmer Garcia" <wilmeruribe...@gmail.com>
> Para: pgsql-es-ay...@postgresql.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

Reply via email to