ВЫБЕРИТЕ v.rep,
Сумма (V. [большой Rev]) как GrossRev,
DATENAME (месяц, v.Funded) как Mth ,
месяц (v.Funded) как MthI
В #temp
ОТ CRMPROD_01.dbo.v_P_Reporting v
ГДЕ v.Funded не нулево
и v.Status <> «закрыло»
и (ГОД (v.Funded) = ГОД (getdate ()))
и (МЕСЯЦ (v.Funded) > МЕСЯЦ (getdate ())- @)
Группа rep, v.Funded
ЗАКАЗ v.rep, месяц (v.Funded)
--Создайте динамический SQl и ось
объявите @sql varchar (4000)
объявите @columns varchar (8000)
объявите @totals varchar (8000)
объявите @averages varchar (8000)
отборные @columns = коалесцируют (@columns+', «, '') +» [«+ Mth +»] ',
@totals = коалесцируют (@totals+'+', '') + «isnull ([» + Mth + «], 0)»,
@averages = коалесцируют (@averages+'+', '') + «isnull (abs (знак ([» + Mth + «])), 0)»
от #temp
группа Mth, MthI
заказ MthI
установите @sql = '
ВЫБЕРИТЕ [rep], '+ @columns +
«, [итог] =» + @totals +
«, [AVG] =1.0*(" + @totals + ")/isnull (nullif (» + @averages + ', 0), 0)
ОТ
(ВЫБЕРИТЕ [rep], [GrossRev], [Mth] как Mth от #temp) src
ОСЬ
(Сумма ([GrossRev]) ДЛЯ Mth ВНУТРИ (" + @columns + ")) КАК pvt
EXEC (@sql)
#temp таблицы падения
|