2017-05-18 11 views
3

Ich habe einen Datensatz, der Ergebnisse in diesem erzeugt.SSRS Matrix mit mehreren Gruppen

Parent | NodeName | Value | ID | 
--------------------------------------------- 
AAA  | Name  | blah1 | 1 | 
AAA  | val   | 1  | 1 | 
BBB  | tag   | tag2 | 2 | 
BBB  | Name  | blah2 | 2 | 
BBB  | val   | 2  | 2 | 
AAA  | tag   | tag1 | 1 | 
CCC  | Name  | blah3 | 3 | 
CCC  | tag   | tag3 | 3 | 
CCC  | val   | 3  | 3 |  
AAA  | Name  | blah4 | 4 | 
AAA  | tag   | tag4 | 4 | 
AAA  | val   | 4  | 4 | 

Ich würde dies gerne Gruppe

AAA 
----------------------------------------- 
    | Name | Val  | Tag  | 
----------------------------------------- 
    | blah1 | 1  | tag1 | 
    | blah4 | 4  | tag4 | 

BBB 
----------------------------------------- 
    | Name | Val  | Tag  | 
----------------------------------------- 
    | blah2 | 2  | tag2 | 


CCC 
----------------------------------------- 
    | Name | Val  | Tag  | 
----------------------------------------- 
    | blah3 | 3  | tag3 | 

ich ein paar Tricks von diesem Link versucht haben, aber noch kein Glück. Vielen Dank. http://agilebi.com/jjames/2010/09/10/how-to-pivot-data-in-ssrs/

Ich habe versucht, was @ jimmy8ball in Kommentaren vorgeschlagen. Die Entwurfsoberfläche sah aus wie Design surface

Das Endergebnis sieht aus wie final result. But with gaps

Als ich im Moment nur drei Gruppen AAA, BBB und CCC haben. Ich habe drei verschiedene Datensätze mit Filtern erstellt, die nur eine Gruppe, z. B. AAA, enthalten. Das Ergebnis sieht so aus.

Filtered Data for each parent

Ich bin nicht sicher, ob es der beste Weg, zu tun ist. Irgendwelche Vorschläge willkommen.

Noch ein weiteres Update basierend auf @ Jimmy8ball. Ich bin nicht in der Lage, es funktioniert immer noch wie @ Jimmy8ball Antwort.

Mein Dataset Ergebnis sieht wie folgt aus enter image description here

Meine Design-Oberfläche sieht wie folgt aus. enter image description here

Mein Ergebnis nach @ jimmy8ball Antwort sieht so aus, die zweite Reihe von Werten für AAA fehlen. Irgendwelche Vorschläge? enter image description here

+0

ok haben Sie in Ihrem Dataset ein übergeordnetes Datenelement erhalten? oder bestellen Sie mit dem Namen und möchten nach dem ersten Buchstaben des Namens gruppieren? – jimmy8ball

+0

Sie können dies erreichen, indem Sie für jedes Feld, das Sie ausstoßen, drei Spaltengruppen verwenden. Sie können einfach mit den Gruppenköpfen umgehen, um die Werte pro Zeile anzuzeigen. –

+0

Dies sind die Spalten in meinem Datensatz Parent, NodeName, Value. Ja, es gibt eine Spalte Parent. Beantwortet das deine Frage? – Abe

Antwort

0

die vorherige Antwort zu aktualisieren, folgen Sie der unten Setup habe ich die Matrix gezwickt die NodeName als Split für jeden Elternteil angezeigt werden, nach wie vor, entfernen Sie alle Auto-Zählungen oder fasst

enter image description here

Zeilennummer und die Partition, indem Sie hier unter Verwendung hilft, die Gruppierung Niveau zu halten, hier ist die sQL-i

select parent+'-'+convert(varchar,ROW_NUMBER() over(partition by parent, nodename order by id)) as parent, nodename, value, id 
from dbo.test1 t 
+0

Hallo, ich habe immer noch nicht das Ergebnis, das ich suche. Ich habe meine Frage mit meinem Ergebnis basierend auf Ihrer Antwort aktualisiert. – Abe

+0

Dies wird wegen der Gruppierungen auf Eltern geschehen, ich habe die SQL-to-Zeile Nummer th Elternteil optimiert und dies erzeugt jetzt die fehlenden Zeilen für AAA - können Sie dies in Ihr Skript hinzufügen, das den Datensatz füttert - wählen Eltern + '- '+ convert (varchar, ROW_NUMBER() über (Partition durch Eltern, nodename Reihenfolge nach ID)) als Eltern, Knotenname, Wert, ID von dbo.test1 t – jimmy8ball

0

Eine Lösung ist die Gruppe von Eltern verwendet haben, dann ID für die Maxtix-Zeilen und Knotenname für die Spalten (und Wert für die Werte). Es gruppiert die Daten so, wie Sie es brauchen, aber das Format ist nicht genau das, was Sie wollten.

enter image description here

Wenn Sie die Spaltenüberschriften wiederholen Sie für jeden Elternteil haben wollen, ist eine Möglichkeit, eine äußeree Liste oder Tablix für die Gruppierung zu verwenden.

  • in Ihrer Matrix, Gruppierung von ID für die Zeilen und NodeName für die Spalten
  • auch eine Liste erstellen, die Eltern hat, wie es Zeilengruppe ist.(Keine Seitenumbrüche zwischen den Instanzen der Gruppe)
  • Setzen Sie die Matrix in die Liste
  • Fügen Sie eine TextBox für den übergeordneten Wert in der Liste über der Matrix hinzu.

enter image description here