Query en SQL dentro de SAP

Estoy realizando un Query el cual muestra los meses en Filas, lo que me gustaría poder hacer es que me muestre los meses en columnas pero por más que trato no puedo hacer funcionar un Pivot Dinámico.

Cabe aclarar que si he podido generar los meses tanto con un CASE como con un Pivot Estático, pero no puedo hacerlo Dinámico, lo necesito así ya que mi consulta muestra solo reporte de Ventas de 3 meses atrás y 3 adelante, ojala alguien me pueda ayudar, Gracias

SELECT T1.[ItemCode] AS 'Codigo', T1.[Dscription] AS 'Material', YEAR(T0.[DocDate]) AS 'Año', datename(month,T0.[DocDate]) AS 'Mes', SUM(T1.[Quantity]) AS 'Total'

FROM OINV T0 INNER JOIN INV1 T1 ON T0.[DocEntry] = T1.[DocEntry] INNER JOIN OSLP T2 ON T0.[SlpCode] = T2.[SlpCode] INNER JOIN OITM T3 ON T1.[ItemCode] = T3.[ItemCode]

WHERE (MONTH(T0.[DocDate]) >= MONTH(getdate())-3 and MONTH(T0.[DocDate]) <= MONTH(getdate())+3 and year(T0.[DocDate]) = year(getdate())) and T1.[Quantity] > 0

group by T1.[ItemCode], T1.[Dscription], YEAR(T0.[DocDate]), datename(month,T0.[DocDate])

UNION ALL

SELECT T1.[ItemCode], T1.[Dscription], YEAR(T0.[DocDate]), datename(MONTH,T0.[DocDate]), SUM(T1.[Quantity]*-1)

FROM ORIN T0 INNER JOIN RIN1 T1 ON T0.[DocEntry] = T1.[DocEntry] INNER JOIN OSLP T2 ON T0.[SlpCode] = T2.[SlpCode] INNER JOIN OITM T3 ON T1.[ItemCode] = T3.[ItemCode]

WHERE (MONTH(T0.[DocDate]) >= MONTH(getdate())-3 and MONTH(T0.[DocDate]) <= MONTH(getdate())+3 and year(T0.[DocDate]) = year(getdate())) and T1.[Quantity] < 0

group by T1.[ItemCode], T1.[Dscription], YEAR(T0.[DocDate]), datename(month,T0.[DocDate])

Añade tu respuesta

Haz clic para o