Freigeben über


Aggregate-Funktion (Berichts-Generator 2.0)

Gibt ein benutzerdefiniertes Aggregat des angegebenen Ausdrucks gemäß der Definition durch den Datenprovider zurück.

Syntax

Aggregate(expression, scope)

Parameter

Rückgabetyp

Wird durch den Datenprovider bestimmt. Die Funktion gibt Nothing zurück, wenn der Datenprovider diese Funktion nicht unterstützt oder Daten nicht verfügbar sind.

Hinweise

Die Aggregate-Funktion bietet eine Möglichkeit, Datenanbieterfeatures zu unterstützen. Beispielsweise verwendet die SQL ServerAnalysis Services-Datenverarbeitungserweiterung einen Datenanbieter, der vereinfachte Rowsets von einer MDX-Abfrage abruft. 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 2.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.

HinweisHinweis

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 ServerAnalysis Services-Datenverarbeitungserweiterung muss Ihre Abfrage MDX-Felder des Typs LevelProperty (nicht MemberProperty) enthalten, um die Aggregation mit der Aggregate-Funktion zu unterstützen.

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 Verwenden von integrierten Berichts- und Aggregationsfunktionen in Ausdrücken (Berichts-Generator 2.0) aufgeführten Aggregatfunktionen.

Beispiel

Im folgenden Codebeispiel wird ein Ausdruck, der ein Serveraggregat für das Feld LineTotal abruft, veranschaulicht. Der Ausdruck wird einer Zelle in einer Zeile, die zur Gruppe GroupbyOrder gehört, hinzugefügt.

=Aggregate(Fields!LineTotal.Value, "GroupbyOrder")