none
Enviar a excel por meses RRS feed

  • Pregunta

  • Hola buen día.

    Tengo la siguiente situación, espero me puedan apoyar: Tengo una consulta SQL que me obtiene el número de ventas por produto en un determinado tiempo, pero quiero convertir esa consulta de modo que al enviar la información a excel, me cree tantas columnas como meses existan en mi consulta; es decir, si en mi consulta hay ventas desde enero-diciembre; que en excel cree 12 columnas y por producto las veces por cada uno de los meses. Espero me puedan apoyar con ejemplos o lo que deba investigar para investigar. Saludos cordiales.

    martes, 24 de abril de 2018 4:28

Todas las respuestas

  • Hola yorch_

    Lo que solicitas es un PIVOT por meses.

    En la select tienes que extraer los registros mostrandote los meses como columnas, para así poder pasarselos a excel de ese modo. Si el PIVOT es fijo (tenga o no tenga resultados son 12 columnas), es bastante más fácil de implementar, que si es dinámico. Solo obtendrías las columnas de los meses que dispongas. Ejemplo 1,3,5,12 (o en texto).

    https://docs.microsoft.com/es-es/previous-versions/sql/sql-server-2008-r2/ms177410(v=sql.105)

    https://msdn.microsoft.com/es-es/communitydocs/servidores/sql-server/pivot-dinamico

    Un saludo

    martes, 24 de abril de 2018 5:43
  • Gracias Javi Fernández; investigaré del tema. En mi base de datos tenemos 35,000 productos y no todos tienen ventas al mes, pero aproximadamente 5,000 si tienen movimientos en cada mes, aunque los que se vendieron en enero no necesariamente se vendan en febrero y así sucecivamente por cada mes; por eso quiero que aunque por lo menos una vez se haya vendido en algún mes, se refleje en reporte. Gracias

    Saludos

     
    martes, 24 de abril de 2018 14:06
  • Hola yorch_

    Ese no es el problema del dinamico, o estatico, esta bien lo que dices. Solo busca en 5000.

    Pero imaginate el escenario más facil.

    De los 5000 que tienen ventas en algun mes, puedes hacer un pivot estatico, y te muestra 12 columnas una por mes, con 5000 filas. Este pivot es "facil".

    Opción 2: De los 5000 filas, tienes registros para este año de la consulta, solo para 10 meses,

    las columnas = 10, pero el año que viene tienes para 6 las columnas 6 == Pivot dinámico, mas costoso de entender y de programar.

    Saludos

    martes, 24 de abril de 2018 14:14