Pivot table

Bueno pues, la historia es la siguiente, la empresa donde trabajo esta creciendo constantemente y como encargada de todo el flujo de información para la toma de decisione, me enfrento una y otra vez a situaciones dondeel excel ya no es suficiente.

Me refiero a que muchos de los reportes nacen de una consulta a base de datos que despues se formatea en excel, lo que puede incluir tan solo pintarla de colores o usar una tabla dinámica o hacer gráficas, etc. para despues enviarla a directores y gerentes.
Bueno, el caso es que resulta que hay información que literalmente ya no cabe en una hoja de excel ( mas de 1,048,576 filas) y es información que necesito en una sola hoja para luego armar una tabla dinámica, entonces pues resolví que lo mejor sería formatearla desde SQL enlugar de en Excel y para eso use un Pivot Table.
Ya había utilizado el Pivot antes, pero sinceramente la sentencia la contruí con alguien mas y me quede erroneamente con la idea de que era muy muy dificil, pero bueno un programador tiene que hacer lo que un programador tiene que hacer asi que puse manos a la obra y resulto malditamente fácil, y pues aqui les digo como =)

Tengo un query con el cual obtengo algo como lo que sigue:

sucursal | credito | monto | fecha

Puebla | 123456 | 3,000 | 15/01/2012
Este resultado lo metí en una tabla temporal #T (es mi primer pivot yo sola asi que lo hice por pasos para no enredarme), luego de esta tabla #T obtuve de la fecha el mes y el año y lo concatene, metiendo esto en otra tabla temporal #T2, quedando esta asi:

sucursal | credito | monto | fecha | mesaño

Puebla | 123456 | 3,000 | 15/01/2012 | enero2012

Ya teniendo esto, solo quedo armar mi sentencia con PivotTable,

select * from #T2
pivot
    (
        sum(monto)
        for MesAnio
        IN (
            [ENERO2012],[FEBRERO2012],[MARZO2012],[ABRIL2012],[MAYO2012],[JUNIO2012],[JULIO2012],[AGOSTO2012],[SEPTIEMBRE2012],[OCTUBRE2012],[NOVIEMBRE2012],[DICIEMBRE2012]
            )    
    )  PivotTable

y ta daaaaa eso es todo🙂, el resultado de mi Pivot sería mas o menos asi:

Sucursal | credito | ENERO2012 | FEBRERO2012 | MARZO2012 | ABRIL2012 | MAYO2012 | JUNIO2012 | JULIO2012 | AGOSTO2012 | SEPTIEMBRE2012 | OCTUBRE2012 | NOVIEMBRE2012 | DICIEMBRE2012

Puebla | 123456 | 3,000 |

Espero a alguien le sirva =)

 

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s