Aggregatfunktion (Report Builder 3.0 und SSRS)
Gibt ein benutzerdefiniertes Aggregat des angegebenen Ausdrucks gemäß der Definition durch den Datenanbieter zurück.
Hinweis |
---|
Sie können Berichtsdefinitionen (RDL) in Berichts-Generator 3.0 und im Berichts-Designer in Business Intelligence Development Studio erstellen und ändern. Jede Erstellungsumgebung bietet verschiedene Methoden zum Erstellen, Öffnen und Speichern von Berichten und verwandten Elementen. Weitere Informationen finden Sie unter Entwerfen von Berichten in Berichts-Designer und Berichts-Generator 3.0 (SSRS) im Web auf microsoft.com. |
Syntax
Aggregate(expression, scope)
Parameter
expression
Der Ausdruck, für den die Aggregation auszuführen ist. Der Ausdruck muss aus einem einfachen Feldverweis bestehen.scope
(String) Der Name eines Datasets, einer Gruppe oder eines Datenbereichs mit den Berichtselementen, auf die die Aggregatfunktion angewendet werden soll. Scope muss eine Zeichenfolgenkonstante sein, und darf kein Ausdruck sein. Wenn scope nicht angegeben ist, wird der aktuelle Bereich verwendet.
Rückgabetyp
Wird durch den Datenanbieter bestimmt. Die Funktion gibt Nothing zurück, wenn der Datenanbieter diese Funktion nicht unterstützt oder Daten nicht verfügbar sind.
Hinweise
Die Aggregate-Funktion bietet die Möglichkeit, Aggregate zu verwenden, die auf der externen Datenquelle berechnet werden. Die Unterstützung dieser Funktion hängt von der Datenerweiterung ab. Beispielsweise ruft die SQL Server Analysis Services-Datenverarbeitungserweiterung vereinfachte Rowsets von einer MDX-Abfrage ab. Einige Zeilen im Resultset können auf dem Datenquellenserver berechnete Aggregatwerte enthalten. Diese Werte werden als Serveraggregate bezeichnet. Zum Anzeigen von Serveraggregaten im grafischen Abfrage-Designer für Analysis Services klicken Sie in der Symbolleiste auf die Schaltfläche Aggregat anzeigen. Weitere Informationen finden Sie unter Benutzeroberfläche des MDX-Abfrage-Designers für Analysis Services (Berichts-Generator 3.0).
Beim Anzeigen der Kombination aus Aggregat- und Detaildatasetwerten in Detailzeilen eines Tablix-Datenbereichs werden Serveraggregate in der Regel nicht einbezogen, da es sich nicht um Detaildaten handelt. Sie können jedoch alle für das Dataset abgerufenen Werte anzeigen und die Art der Berechnung und Anzeige für die Aggregatdaten anpassen.
Reporting Services erkennt die Verwendung der Aggregate-Funktion in Ausdrücken Ihres Berichts, um zu bestimmen, ob Serveraggregate in Detailzeilen angezeigt werden sollen. Wenn Sie Aggregate in einen Ausdruck eines Datenbereichs einbeziehen, können Serveraggregate nur in Ergebniszeilen für Gruppen oder Gesamtergebniszeilen, jedoch nicht in Detailzeilen erscheinen. Wenn Sie Serveraggregate in Detailzeilen anzeigen möchten, verwenden Sie die Aggregate-Funktion nicht.
Sie können dieses Standardverhalten ändern, indem Sie den Wert der Option Teilergebnisse als Detailzeilen interpretieren des Dialogfelds Dataseteigenschaften ändern. Wenn diese Option auf True festgelegt wird, werden alle Daten, einschließlich der Serveraggregate, als Detaildaten angezeigt. Ist die Option auf False festgelegt, werden Serveraggregate als Gesamtbeträge angezeigt. Die Einstellung für diese Eigenschaft beeinflusst alle Datenbereiche, die mit diesem Dataset verknüpft sind.
Hinweis |
---|
Die Gruppenausdrücke aller Gruppen, die das Berichtselement enthalten, das auf Aggregate verweist, müssen aus einfachen Feldverweisen bestehen, z. B. [FieldName]. Sie können Aggregate in einem Datenbereich, der komplexe Gruppenausdrücke verwendet, nicht einsetzen. Für die SQL Server Analysis Services-Datenverarbeitungserweiterung muss Ihre Abfrage MDX-Felder des Typs LevelProperty (nicht MemberProperty) enthalten, um die Aggregation mit der Aggregate-Funktion zu unterstützen. |
Das Expression-Objekt kann Aufrufe von geschachtelten Aggregatfunktionen enthalten. Dabei gelten folgende Ausnahmen und Bedingungen:
Das Scope-Objekt für geschachtelte Aggregate muss dem Bereich des äußeren Aggregats entsprechen oder darin enthalten sein. In allen eindeutigen Bereichen des Ausdrucks muss ein Bereich eine untergeordnete Beziehung zu allen anderen Bereichen haben.
Das Scope-Objekt für geschachtelte Aggregate darf nicht der Name eines Datasets sein.
Das Expression-Objekt darf die Funktionen First, Last, Previous oder RunningValue nicht enthalten.
Das Expression-Objekt darf keine geschachtelten Aggregate enthalten, die ein recursive-Objekt angeben.
Weitere Informationen finden Sie unter Aggregatfunktionsreferenz (Report Builder 3.0 und SSRS) und Grundlegendes zum Ausdrucksbereich für Gesamtwerte, Aggregate und integrierte Auflistungen (Report Builder 3.0 und SSRS).
Weitere Informationen zu rekursiven Aggregaten finden Sie unter Erstellen von rekursiven Hierarchiegruppen (Report Builder 3.0 und SSRS).
Vergleichen der Aggregate-Funktion und der Sum-Funktion
Die Aggregate-Funktion unterscheidet sich von numerischen Aggregatfunktionen wie Sum dadurch, dass die Aggregate-Funktion einen Wert zurückgibt, der vom Datenanbieter oder von der Datenverarbeitungserweiterung berechnet wird. Numerische Aggregatfunktionen wie Sum geben einen Wert zurück, der vom Berichtsprozessor für eine Gruppe von Daten in einem Dataset berechnet wird, das durch den scope-Parameter bestimmt wird. Weitere Informationen finden Sie in den unter Aggregatfunktionsreferenz (Report Builder 3.0 und SSRS) aufgeführten Aggregatfunktionen.
Beispiel
Im folgenden Codebeispiel wird ein Ausdruck veranschaulicht, der ein Serveraggregat für das Feld LineTotal abruft. Der Ausdruck wird einer Zelle in einer Zeile, die zur Gruppe GroupbyOrder gehört, hinzugefügt.
=Aggregate(Fields!LineTotal.Value, "GroupbyOrder")
Siehe auch