Reporting Services: Gruppen und Summen

Im Artikel “Reporting Services: Tabellarische Berichte” haben wir uns am Beispiel einer Kundenliste bereits angesehen, wie Sie einfache Tabellen erstellen und einfache Features wie sich wiederholende Spaltenüberschriften nutzen. In diesem Artikel wollen wir Kunden, Bestellungen und Bestellpositionen zum Thema machen und dazu wiederum eine Tabelle verwenden. Wegen der verschiedenen Ebenen soll diese allerdings Gruppierungen enthalten, die uns unter anderem Informationen über die Umsätze je Position, Bestellung und Kunde liefern.

Vorbereitungen

Als Vorbereitung benötigen Sie die Beispieldatenbank AdventureWorks. Deren Download und Installation beschreiben wir im Artikel AdventureWorks: Schnelle Beispieldatenbank (www.datenbankentwickler.net/254).

Ziel

Wir möchten einen Bericht erstellen, der die Bestellpositionen nach Bestellung und Kunde gruppiert und die Gruppensummen anzeigt. Die Detaildatensätze sollen also jeweils eine Bestellposition enthalten. Die Bestellpositionen einer Bestellung sollen einen Gruppenkopf enthalten, der das Bestelldatum enthält und einen Gruppenfuß mit der Bestellsumme. Außerdem wollen wir noch eine weitere Gruppierung hinzufügen, welche die Bestellungen nach Kunde gruppiert. Diese soll im Gruppenkopf einige wesentliche Kundendaten anzeigen wie die Kundennummer, Vor- und Nachname und die Firma. Im Gruppenfuß dieser Gruppe soll die Summe der Bestellpositionen erscheinen, also der gesamte Umsatz mit diesem Kunden.

Umsatz je Kunde anzeigen

Wir nähern uns dem Schritt für Schritt. Zunächst möchten wir die Umsatzsummen je Kunde in jeweils einer Zeile des Berichts anzeigen. Jede Zeile der Tabelle soll also einen Kunden und die Umsätze dieses Kunden liefern.

Gruppierungen per Assistent

Im ersten Anlauf wollen wir die gruppierte Tabelle per Assistent erstellen. Dazu rufen wir im SQL Server Report Builder mit dem Ribbonbefehl Datei|Neu den Dialog Neuer Bericht oder neues Dataset auf. Hier wählen wir den Eintrag Tabellen- oder Matrix-Assistent (siehe Bild 1).

Starten des Assistenten

Bild 1: Starten des Assistenten

Datenquelle festlegen

Im nun folgenden Dialog Neue Tabelle oder Matrix aktivieren wir die Option Dataset erstellen und klicken auf Weiter. Damit gelangen wir zum Schritt Verbindung mit einer Datenquelle auswählen. Hier klicken Sie auf die Schaltfläche Neu. Im Dialog Datenquelleneigenschaften definieren Sie die Datenquelle, die beispielsweise wie in Bild 2 aussieht.

Datenquelle definieren

Bild 2: Datenquelle definieren

Dataset definieren

Zurück im Assistenten sehen Sie den Schritt Abfrage entwerfen. Hier wählen Sie im linken Bereich die kompletten Tabellen oder auch nur einzelne Felder aus, die im Bericht verwendet werden sollen.

Aus Gründen der Übersicht sollten Sie nur die Felder wählen, die Sie später auch nutzen. In diesem Fall nutzen wir Felder der Tabellen Customer, Product, ProductCategory, SalesOrderDetail und SalesOrderHeader. Mit einem Klick auf die Schaltfläche Abfrage ausführen können Sie sich die zu erwartenden Daten direkt als Abfrageergebnis anschauen (siehe Bild 3).

Dataset definieren

Bild 3: Dataset definieren

Im Artikel “Reporting Services: Tabellarische Berichte” haben wir uns am Beispiel einer Kundenliste bereits angesehen, wie Sie einfache Tabellen erstellen und einfache Features wie sich wiederholende Spaltenüberschriften nutzen. In diesem Artikel wollen wir Kunden, Bestellungen und Bestellpositionen zum Thema machen und dazu wiederum eine Tabelle verwenden. Wegen der verschiedenen Ebenen soll diese allerdings Gruppierungen enthalten, die uns unter anderem Informationen über die Umsätze je Position, Bestellung und Kunde liefern.

Vorbereitungen

Als Vorbereitung benötigen Sie die Beispieldatenbank AdventureWorks. Deren Download und Installation beschreiben wir im Artikel AdventureWorks: Schnelle Beispieldatenbank (www.datenbankentwickler.net/254).

Ziel

Wir möchten einen Bericht erstellen, der die Bestellpositionen nach Bestellung und Kunde gruppiert und die Gruppensummen anzeigt. Die Detaildatensätze sollen also jeweils eine Bestellposition enthalten. Die Bestellpositionen einer Bestellung sollen einen Gruppenkopf enthalten, der das Bestelldatum enthält und einen Gruppenfuß mit der Bestellsumme. Außerdem wollen wir noch eine weitere Gruppierung hinzufügen, welche die Bestellungen nach Kunde gruppiert. Diese soll im Gruppenkopf einige wesentliche Kundendaten anzeigen wie die Kundennummer, Vor- und Nachname und die Firma. Im Gruppenfuß dieser Gruppe soll die Summe der Bestellpositionen erscheinen, also der gesamte Umsatz mit diesem Kunden.

Umsatz je Kunde anzeigen

Wir nähern uns dem Schritt für Schritt. Zunächst möchten wir die Umsatzsummen je Kunde in jeweils einer Zeile des Berichts anzeigen. Jede Zeile der Tabelle soll also einen Kunden und die Umsätze dieses Kunden liefern.

Gruppierungen per Assistent

Im ersten Anlauf wollen wir die gruppierte Tabelle per Assistent erstellen. Dazu rufen wir im SQL Server Report Builder mit dem Ribbonbefehl Datei|Neu den Dialog Neuer Bericht oder neues Dataset auf. Hier wählen wir den Eintrag Tabellen- oder Matrix-Assistent (siehe Bild 1).

Starten des Assistenten

Bild 1: Starten des Assistenten

Datenquelle festlegen

Im nun folgenden Dialog Neue Tabelle oder Matrix aktivieren wir die Option Dataset erstellen und klicken auf Weiter. Damit gelangen wir zum Schritt Verbindung mit einer Datenquelle auswählen. Hier klicken Sie auf die Schaltfläche Neu. Im Dialog Datenquelleneigenschaften definieren Sie die Datenquelle, die beispielsweise wie in Bild 2 aussieht.

Datenquelle definieren

Bild 2: Datenquelle definieren

Dataset definieren

Zurück im Assistenten sehen Sie den Schritt Abfrage entwerfen. Hier wählen Sie im linken Bereich die kompletten Tabellen oder auch nur einzelne Felder aus, die im Bericht verwendet werden sollen.

Aus Gründen der Übersicht sollten Sie nur die Felder wählen, die Sie später auch nutzen. In diesem Fall nutzen wir Felder der Tabellen Customer, Product, ProductCategory, SalesOrderDetail und SalesOrderHeader. Mit einem Klick auf die Schaltfläche Abfrage ausführen können Sie sich die zu erwartenden Daten direkt als Abfrageergebnis anschauen (siehe Bild 3).

Dataset definieren

Bild 3: Dataset definieren

Access, SQL und Cloud Automation

Unser exklusives Angebot für Dich!

VB-Entwickler
12,50 € im Monat*

(Gilt für den Abschluss eines Jahres-Abonnements.)

Hier geht’s weiter →

Die ersten 4 Wochen kostenlos testen – voller Zugriff auf alle Artikel, vollständigen Code und Beispieldatenbanken. Kein Risiko: Wenn es nicht passt, kündigst Du einfach innerhalb der ersten vier Wochen.

PayPal VISA Mastercard SEPA
Kostenlos & unverbindlich

Oder hast Du eine konkrete Frage zu Deiner eigenen Access-Anwendung?

Vielleicht stellt Deine Anwendung Dich vor eine Herausforderung, zu der Du bisher keine Lösung findest. Schlechte Performance, kein ausreichender Zugriffsschutz, Du bist unsicher über Dein Datenmodell oder Dein Code liefert unerklärliche Fehler?

In unserem kostenlosen Access-Audit schaut sich André Minhorst persönlich gemeinsam mit Dir Deine Lösung per Zoom an – und zeigt Dir, wo Datenmodell, VBA-Code, Ergonomie und Sicherheit Optimierungspotenzial bieten.

Jetzt kostenloses Access-Audit anfordern →