Tabla dinámica de SQL Server: dinámica

Tengo una tabla, llamada #MonthlySales, que muestra ItemNumber, MonYearNum y UnitsSold. Giré esto con el siguiente script:

SELECCIONE NÚMERO DE ARTÍCULO [SKU] , ISNULL([1-2011], 0) [11 de enero] , ISNULL([2-2011], 0) [11 de febrero] , ISNULL([3-2011], 0) [11 de marzo] , ISNULL([4-2011], 0) [11 de abril] , ISNULL([5-2011], 0) [11 de mayo] , ISNULL([6-2011], 0) [11 de junio] , ISNULL([7 -2011], 0) [11 de julio] , ISNULL([8-2011], 0) [11 de agosto] , ISNULL([9-2011], 0) [11 de septiembre] , ISNULL([10-2011], 0 ) [11 de octubre] , ISNULL([11-2011], 0) [11 de noviembre] , ISNULL([12-2011], 0) [11 de diciembre] 

, ISNULL([1-2012], 0) [Jan 12]
, ISNULL([2-2012], 0) [Feb 12]
, ISNULL([3-2012], 0) [Mar 12]
, ISNULL([4-2012], 0) [Apr 12]
, ISNULL([5-2012], 0) [May 12]
, ISNULL([6-2012], 0) [Jun 12]
, ISNULL([7-2012], 0) [Jul 12]
, ISNULL([8-2012], 0) [Aug 12]
, ISNULL([9-2012], 0) [Sep 12]
, ISNULL([10-2012], 0) [Oct 12]
, ISNULL([11-2012], 0) [Nov 12]
, ISNULL([12-2012], 0) [Dec 12] 

DESDE EL PIVOTE DE VENTAS MENSUALES ( SUMA (UNIDADES VENDIDAS) POR NÚMERO DE AÑO EN ( [1-2011], [2-2011], [3-2011], [4-2011], [5-2011], [6-2011], [ 7-2011], [8-2011], [9-2011], [10-2011], [11-2011], [12-2011] ,[1-2012], [2-2012], [3- 2012], [4-2012], [5-2012], [6-2012], [7-2012], [8-2012], [9-2012], [10-2012], [11-2012] , [12-2012] ) ) SEGÚN EL PEDIDO VENDIDO POR MES POR NÚMERO DE ARTÍCULO


Como puede ver, la columna MonthYearNum está codificada en valores como 1-2011. Sin embargo, no puedo codificarlos, ya que son dinámicos; según el día en que se ejecute este informe, se devolverán diferentes valores MonthYearNum de la tabla #monthlysales.

¿Hay alguna forma de pivotar dinámicamente los valores que se devuelven?

TIA

preguntado el 03 de mayo de 12 a las 19:05

2 Respuestas

Sí, escriba SQL dinámico. Es complejo, y en lugar de reescribir un código similar (porque soy perezoso), consulte mi respuesta a esta pregunta para una muestra Es código para un pivote dinámico, pero el concepto es el mismo.

contestado el 23 de mayo de 17 a las 11:05

Hey gracias. En su ejemplo, ¿cómo sería la función GetTableColumnNames? - Rivka

Esa fue una función definida por la persona que publicó la pregunta, ah, el código para ello se encuentra arriba, en la pregunta real. - felipe kelley

Alternativamente, ¿a qué se está enviando esto? SSRS, Report Builder, Excel y la mayoría de las herramientas de informes de terceros harán la tabulación cruzada por usted.

contestado el 03 de mayo de 12 a las 19:05

Verdadero. Los pivotes dinámicos en SQL son un verdadero dolor de cabeza. - felipe kelley

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.