Funktionen des Berichts-Generators: Aggregatfunktion in einem paginierten Bericht (Berichts-Generator)
Gilt für: Microsoft Report Builder (SSRS) Power BI Report Builder Report Designer in SQL Server Data Tools
Gibt ein benutzerdefiniertes Aggregat des angegebenen Ausdrucks in einem paginierten Bericht gemäß der Definition durch den Datenanbieter zurück.
Hinweis
Sie können paginierte Berichtsdefinitionsdateien (.rdl) im Berichts-Generator von Microsoft, im Power BI Report Builder und im Berichts-Designer in SQL Server-Datentools erstellen und ändern.
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
(Zeichenfolge) Der Name eines Datasets, einer Gruppe oder eines Datenbereichs mit den Berichtselementen, auf die die Aggregatfunktion anzuwenden ist. 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.
Bemerkungen
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 Serveraggregatebezeichnet. 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).
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.
Der Berichts-Generator erkennt die Verwendung der Aggregat-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 Truefestgelegt wird, werden alle Daten, einschließlich der Serveraggregate, als Detaildaten angezeigt. Ist die Option auf Falsefestgelegt, 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 Aggregat 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 vom Typ LevelProperty (nicht MemberProperty) enthalten, um die Aggregation mit der Aggregate-Funktion zu unterstützen.
DasExpression -Objekt kann Aufrufe von geschachtelten Aggregatfunktionen enthalten. Dabei gelten folgende Ausnahmen und Bedingungen:
DasScope -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.
DasScope -Objekt für geschachtelte Aggregate darf nicht der Name eines Datasets sein.
DasExpression -Objekt darf die Funktionen First, Last, Previousoder RunningValue nicht enthalten.
DasExpression -Objekt darf keine geschachtelten Aggregate enthalten, die ein recursive-Objekt angeben.
Weitere Informationen finden Sie in der Aggregatfunktionsreferenz (Berichts-Generator und SSRS) und unter Ausdrucksbereich für Gesamtwerte, Aggregate und integrierte Auflistungen (Berichts-Generator und SSRS).
Weitere Informationen zu rekursiven Aggregaten finden Sie unter Erstellen rekursiver Hierarchiegruppen (Berichts-Generator 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 im Thema Aggregatfunktionsreferenz (Berichts-Generator und SSRS) aufgelisteten 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")