Question : Pivoter le rapport avec le SQL dynamique et se monte à des colonnes

Le code atteached, fourni par des données expertes des travaux great.

The de l'EE est produit comme : etc
myrep 1000 du
rep janvier février 1250
Is etc

Question… là une manière d'ajouter une colonne de totaux et si possible une moyenne par colonne de mois ? le
rep janvier février etc. du

New… se monte à AVG
myrep 1000 1250 etc. 2250 1125
class= > " clair " de
> de " codeSnippet " de class= de
class= " lineNumbers " de
class= de
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 " de l'id= " codeSnippet945298 de
 de 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)    
  
les @columns choisis = fusionnent (@columns+', « , '') + » [« + le Mth + »] '  
du #temp  
groupe par Mth, MthI  
ordre par MthI  
   
placer le @sql = '  
    CHOISIR [représentant], « + les @columns + »  
    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
class= de

Réponse : Pivoter le rapport avec le SQL dynamique et se monte à des colonnes

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 :
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
Autres solutions  
  •  MS Excel 2007 et pdf - l'exportation vers le pdf prend de longues heures !
  •  Dans le Perl, comment j'ajoute une valeur à la liste, puis le contrôle pour voir si la valeur existent avant d'ajouter une nouvelle valeur
  •  Comment fais j'initialiser de la HP BL460c G6 de san et de la HP XP 240000
  •  Comment fais j'employer une clef de permis de volume sur un ordinateur de HP avec du CD de restauration
  •  Emplacement primaire de deux SCCM dans l'annuaire actif
  •  L'initiateur et la HP D2D de l'iSCSI R2 du serveur 2008 de Windows GERCENT l'issue
  •  Stocker le dossier dans le mysql using connector.net et le champ de goutte
  •  Carte vidéo d'USB - bit 32 sur le matériel travaillant au niveau du bit 64 ?
  •  asp.net que j'essaye de convertir une forme de HTML en forme d'aspx ou ? ce qui jamais. Aide du besoin sur la façon dont à à elle.
  •  Winzip 12 issues de secours du travail ?
  •  
    programming4us programming4us