SELECCIONAR v.rep,
Suma (V. [Rev grueso]) como GrossRev,
DATENAME (mes, v.Funded) como Mth ,
mes (v.Funded) como MthI
En #temp
De CRMPROD_01.dbo.v_P_Reporting v
DONDE no está nulo v.Funded
y v.Status <> “se cerró”
y (AÑO (v.Funded) = AÑO (getdate ()))
y (MES (v.Funded) > MES (getdate ())- @)
Grupo por el representante, v.Funded
ORDEN POR v.rep, mes (v.Funded)
--Crear el SQl dinámico y el pivote
declarar el @sql varchar (4000)
declarar los @columns varchar (8000)
declarar los @totals varchar (8000)
declarar los @averages varchar (8000)
los @columns selectos = se unen (@columns+', “, '') +” [“+ los Mth +”] ',
los @totals = se unen (@totals+'+', '') + “el isnull ([” + Mth + “], 0)”,
los @averages = se unen (@averages+'+', '') + “isnull (ABS (muestra ([” + el Mth + “])), 0)”
de #temp
grupo por Mth, MthI
orden de MthI
fijar el @sql = '
SELECCIONAR [representante], '+ los @columns +
“, [total] =” + @totals +
“, [AVG] =1.0* (” + @totals + ")/isnull (nullif (” + @averages + ', 0), 0)
DE
(SELECCIONAR [representante], [GrossRev], [Mth] como Mth de #temp) src
PIVOTE
(Suma ([GrossRev]) PARA el Mth ADENTRO (“+ @columns + ")) COMO pvt
EXEC (@sql)
#temp de la tabla de la gota
|