2010-08-18 5 views
1

J'ai une requête de données qui renvoie les données dans le format suivant:Colonnes dynamiques Dans Reporting Services Tablix

Name Period Value 
----------------------------- 
Bob  Jan  123 
Bob  Feb  456 
Bob  Mar  789 
Tom  Jan  321 
Tom  Feb  654 
Tom  Mar  987 
Joe  Jan  147 
Joe  Feb  258 
Joe  Mar  369 

Les différentes périodes sont constants entre les noms, mais seront différentes entre les exécutions du rapport (c.-à-je peut interroger un rapport le janvier/février/mars maintenant, ou avril/mai/juin plus tard). Je suis en train de mettre cela dans une table dans mon rapport de Reporting Services, qui ressemblerait à quelque chose comme ceci:

Name Jan Feb Mar 
---------------------------- 
Bob  123 456 789 
Tom  321 654 987 
Joe  147 258 369 

Quelqu'un peut-il me montrer un exemple de faire quelque chose comme ça? Je ne suis même pas sûr de savoir comment décrire cette «rotation» (?) Des données. Les colonnes doivent être dynamiques en fonction des valeurs de période dans l'ensemble de données.

+0

Le mot que vous recherchez pour décrire la 'rotation' des lignes en colonnes est un tableau croisé dynamique SQL. J'ai écrit une brève explication ici: http://www.adamjamesnaylor.com/UsingPivotTablesInSQL.aspx –

Répondre

1

J'ai trouvé la réponse juste après l'avoir affichée. Voici ce que j'ai fait. a créé un nouveau tablix. Faites glisser le champ Nom vers la ligne de données de la première colonne. Faites glisser la colonne Valeur vers la ligne de données de la deuxième colonne. Glissé le champ Période à la ligne en-tête de la deuxième colonne. Cela a créé un nouveau groupe et une nouvelle colonne d'en-tête de second niveau. J'ai ensuite copié la valeur de cette nouvelle colonne d'en-tête supérieure à la cellule d'en-tête ci-dessous, et supprimé toute la nouvelle ligne d'en-tête. Lorsque vous êtes invité à supprimer la ligne et les groupes associés, ou simplement la ligne, choisissez juste la ligne. Vous devriez être laissé avec un groupe de lignes et deux groupes de colonnes, et il devrait rendre comme prévu.