CHOISIR v.rep,
Somme (V. [Rev brut]) comme GrossRev,
DATENAME (mois, v.Funded) en tant que Mth ,
mois (v.Funded) comme MthI
Dans le #temp
De CRMPROD_01.dbo.v_P_Reporting v
LÀ OÙ v.Funded n'est pas nul
et v.Status <> « s'est fermé »
et (ANNÉE (v.Funded) = ANNÉE (getdate ()))
et (MOIS (v.Funded) > MOIS (getdate ())- @)
Groupe par le représentant, v.Funded
ORDRE PAR v.rep, mois (v.Funded)
--Créer le SQL dynamique et le pivot
déclarer le @sql varchar (4000)
déclarer les @columns varchar (8000)
déclarer les @totals varchar (8000)
déclarer les @averages varchar (8000)
les @columns choisis = fusionnent (@columns+', « , '') + » [« + le Mth + »] ',
les @totals = fusionnent (@totals+'+', '') + « l'isnull ([ » + Mth + « ], 0) »,
les @averages = fusionnent (@averages+'+', '') + « isnull (ABS (signe ([ » + le Mth + « ])), 0) »
du #temp
groupe par Mth, MthI
ordre par MthI
placer le @sql = '
CHOISIR [représentant], '+ des @columns +
« , [total] = » + @totals +
« , [AVG] =1.0*(" + @totals + ")/isnull (nullif ( » + @averages + ', 0), 0)
DE
(CHOISIR [représentant], [GrossRev], [Mth] en tant que Mth à partir du #temp) src
PIVOT
(Somme ([GrossRev]) POUR le Mth DEDANS (" + @columns + ")) COMME pvt
EXEC (@sql)
#temp de table de baisse
|