Questione : Imperniare la dichiarazione con SQL dinamico ed ammontato alle colonne

Il codice atteached, fornito dai dati esperti degli impianti great.

The dell'EE è prodotto come: etc
myrep 1000 del
rep gennaio febbraio 1250
Is etc

Question… là un senso aggiungere una colonna di totali e se possibile una media per colonna di mese? il
rep gennaio febbraio ecc del

New… ammonta a AVG
myrep 1000 1250 ecc 2250 1125
class= > " libero " 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
 di v.Status “chiuso„     
		e (ANNO (v.Funded) = ANNO (getdate ()))     
		e (MESE (v.Funded) > MESE (getdate ())- @)    
Gruppo dal rappresentante, v.Funded    
ORDINE da v.rep, mese (v.Funded)  
  
--Generare lo SQl dinamico ed il perno   
dichiarare il @sql varchar (4000)  
dichiarare i @columns varchar (8000)    
  
i @columns prescelti = si uniscono (@columns+', “, '') +„ [“+ emmesimi +„] '  
da #temp  
gruppo dall'emmesimo, MthI  
ordine da MthI  
   
regolare il @sql = '  
    SELEZIONARE [rappresentante], “+ i @columns +„  
    DA    
    (SELEZIONARE [rappresentante], [GrossRev], [emmesimo] come emmesimo a partire da #temp) src  
     PERNO  
    (Somma ([GrossRev]) PER l'emmesimo DENTRO (" + @columns + ")) COME pvt  
   
EXEC (@sql)  
  
#temp della tabella di goccia
class= del

Risposta : Imperniare la dichiarazione con SQL dinamico ed ammontato alle colonne

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:
SELEZIONARE  v.rep,    
		Somma (V. [Rev lordo]) come GrossRev,     
		DATENAME (mese, v.Funded) come emmesimo  ,  
		mese (v.Funded) come MthI    
In #temp    
	Da CRMPROD_01.dbo.v_P_Reporting v    
DOVE	v.Funded non è nullo     
		e	v.Status <> “chiusi„     
		e	(ANNO (v.Funded) = ANNO (getdate ()))     
		e	(MESE (v.Funded) > MESE (getdate ())- @)    
Gruppo dal rappresentante, v.Funded    
ORDINE da v.rep, mese (v.Funded)  
  
--Generare lo SQl dinamico ed il perno   
dichiarare il @sql varchar (4000)  
dichiarare i @columns varchar (8000)    
dichiarare i @totals varchar (8000)
dichiarare i @averages varchar (8000)
  
i @columns	prescelti = si uniscono (@columns+', “, '') +„ [“+ emmesimi +„] ',
		i @totals  = si uniscono (@totals+'+', '') + “isnull ([„ + emmesimo + “], 0)„,
		i @averages  = si uniscono (@averages+'+', '') + “isnull (ABS (segno ([„ + emmesimo + “])), 0)„
da #temp
gruppo dall'emmesimo, MthI  
ordine da MthI

regolare il @sql = '  
    SELEZIONARE [rappresentante], '+ @columns +
		“, [totale] =„ + @totals +
		“, [AVG] =1.0*(" + @totals + ")/isnull (nullif („ + @averages + ', 0), 0)
    DA    
    (SELEZIONARE [rappresentante], [GrossRev], [emmesimo] come emmesimo a partire da #temp) src  
     PERNO  
    (Somma ([GrossRev]) PER l'emmesimo DENTRO (" + @columns + ")) COME pvt  
   
EXEC (@sql)  
  
#temp della tabella di goccia
Altre soluzioni  
 
programming4us programming4us