Cuestión : Girar la declaración con el SQL dinámico y suma columnas

El código atteached, suministrado por datos expertos de los trabajos great.

The de EE se hace salir como: ¿etc
myrep 1000 del
rep enero febrero 1250
Is del etc

Question… allí una manera de agregar una columna de los totales y si es posible un promedio por columna del mes? el
rep enero febrero etc del

New… suma AVG
myrep 1000 1250 etc 2250 1125
class= > " claro " del
> del " codeSnippet " del class= del
class= " lineNumbers " del
class= del
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 notpretty v.rep " del class= " del id= " codeSnippet945298 del
 de 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)    
  
los @columns selectos = se unen (@columns+', “, '') +” [“+ los Mth +”] '  
de #temp  
grupo por Mth, MthI  
orden de MthI  
   
fijar el @sql = '  
    SELECCIONAR [representante], “+ los @columns +”  
    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
class= del

Respuesta : Girar la declaración con el SQL dinámico y suma columnas

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:
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
Otras soluciones  
 
programming4us programming4us