Hola
Necesito hacer una consulta con PIVOT creando las columnas de forma dinámica.
Os explico un poco lo que he hecho para que podais entender mejor el objetivo.
Tengo una tabla de movimientos de este tipo:
Fecha (k)
Producto (k)
Importe
Tengo otra tabla con los periodos a consultar :
Periodo (k)
FechaDesde
FechaHasta
Esta tabla se devuelve de una función y el tipo de periodo puede ser
dias,semanas,mes,año,decena,quincena,trimestre, etc...
Para hacer pivot he probado con este ejemplo:
SELECT Articulo, [15/2006], [16/2006] from
(
SELECT Periodos.Periodo, Movimientos.Articulo, Movimientos.Importe
FROM dbo.ListaPeriodos('SEMANA', @FDesde, @FHasta) AS Periodos
INNER JOIN
Movimientos ON Movimientos.Fecha >=
Periodos.FechaDesde AND
Movimientos.Fecha <= Periodos.FechaHasta
) p
pivot
(
sum(Importe) for titulo in ([15/2006],[16/2006]))
as pvt
Con esto consigo el siguiente resultado :
Articulo [15/2006] [16/2006]
1 125 250
2 135 365
3 0 52
4 50 26
He conseguido acercarme al objetivo pero siempre conociendo los valores de
las columnas de periodos.
Lo que me gustaría hacer es la misma consulta pero pudiendo cambiar los
periodos de forma dinámica, sin escribirlos en la sentencia PIVOT.
Si alguien se le ocurre como...
Leer las respuestas