Vraag : De verklaring van de spil met Dynamische SQL en totalenkolommen

Atteached code, geleverd door EE zijn de Deskundige de werkengreat.

The- gegevens output zoals:
rep Januari Februari etc
myrep 1000 1250 etc

Question…
Is daar een manier om een totalenkolom en indien mogelijk een gemiddelde per maandkolom toe te voegen?

New output gewenste…
rep Januari Februari enz. Totalen AVG
myrep 1000 1250 enz. 2250 1125
" codeBody "
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
SELECT v.rep,    
		Som (v. [BrutoOmwenteling]) als GrossRev,     
		DATENAME (maand, v.Funded) als Mth,  
		maand (v.Funded) als MthI    
In #temp    
VAN CRMPROD_01.dbo.v_P_Reporting v    
WAAR v.Funded niet ongeldig is     
		en „Gesloten“ v.Status <>     
		en (JAAR (v.Funded) = JAAR (getdate ()))     
		en (MAAND (v.Funded) > MAAND (getdate ())- @)    
Groep door rep, v.Funded    
ORDE DOOR v.rep, maand (v.Funded)  
  
--Cre�ër Dynamische SQl en Spil   
verklaar @sql varchar (4000)  
verklaar @columns varchar (8000)    
  
selecteer @columns = samenvoegen zich (@columns+', „, '') +“ [„+ Mth +“] '  
van #temp  
groep door Mth, MthI  
orde door MthI  
   
vastgesteld @sql = '  
    SELECTEER [rep], „+ @columns +“  
    VAN    
    (SELECTEER [rep], [GrossRev], [Mth] als Mth van #temp) src  
     SPIL  
    (Som ([GrossRev]) VOOR Mth BINNEN („+ @columns +“)) ALS pvt  
   
EXEC (@sql)  
  
De lijst #temp van de daling

Antwoord : De verklaring van de spil met Dynamische SQL en totalenkolommen

1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
SELECTEER  v.rep,    
		Som (v. [BrutoOmwenteling]) als GrossRev,     
		DATENAME (maand, v.Funded) als Mth  ,  
		maand (v.Funded) als MthI    
In #temp    
VAN	CRMPROD_01.dbo.v_P_Reporting v    
WAAR	v.Funded niet ongeldig is     
		en	„ <> Gesloten“ v.Status     
		en	(JAAR (v.Funded) = JAAR (getdate ()))     
		en	(MAAND (v.Funded) > MAAND (getdate ())- @)    
Groep door rep, v.Funded    
ORDE DOOR v.rep, maand (v.Funded)  
  
--Cre�ër Dynamische SQl en Spil   
verklaar @sql varchar (4000)  
verklaar @columns varchar (8000)    
verklaar @totals varchar (8000)
verklaar @averages varchar (8000)
  
selecteer	@columns = samenvoegen zich (@columns+', „, '') +“ [„+ Mth +“] ',
		@totals  = voegen zich (@totals+'+', '') + „isnull (samen [“ + Mth + „], 0)“,
		@averages  = voegen zich (@averages+'+', '') + „isnull (abs (teken ([“ + Mth + „])) samen, 0)“
van #temp
groep door Mth, MthI  
orde door MthI

vastgesteld @sql = '  
    SELECTEER [rep], '+ @columns +
		„, [Totaal] =“ + @totals +
		„, [AVG] =1.0* (“ + @totals + „) /isnull (nullif (“ + @averages + ', 0), 0)
    VAN    
    (SELECTEER [rep], [GrossRev], [Mth] als Mth van #temp) src  
     SPIL  
    (Som ([GrossRev]) VOOR Mth BINNEN („+ @columns +“)) ALS pvt  
   
EXEC (@sql)  
  
De lijst #temp van de daling
Andere oplossingen  
 
programming4us programming4us