Freigeben über


CountDistinct-Funktion (Berichts-Generator und SSRS)

Gibt die Anzahl aller unterschiedlichen Werte ungleich NULL aus dem angegebenen Ausdruck im Kontext des angegebenen Bereichs ausgewertet zurück.

Hinweis

Sie können Berichtsdefinitionen (RDL) in Berichts-Generator und im Berichts-Designer in SQL Server-Datentools 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 Report Builder (SSRS) im Web unter microsoft.com.

Syntax

  
CountDistinct(expression, scope, recursive)  

Parameter

expression
(Variant) Der Ausdruck, für den die Aggregation auszuführen ist.

scope
(String) optional. Der Name eines Datasets, einer Gruppe oder eines Datenbereichs mit den Berichtselementen, auf die die Aggregatfunktion anzuwenden ist. Wenn scope nicht angegeben ist, wird der aktuelle Bereich verwendet.

recursive
(Enumerationstyp) Optional. Simple (Standardwert) oder RdlRecursive. Gibt an, ob die Aggregation rekursiv auszuführen ist.

Rückgabetyp

Gibt einen Integer zurück.

Bemerkungen

Der Wert des scope -Objekts muss eine Zeichenfolgenkonstante sein und darf kein Ausdruck sein. Für äußere Aggregate oder Aggregate, die keine anderen Aggregate angeben, muss das scope -Objekt auf den aktuellen Bereich oder einen enthaltenen Bereich verweisen. Bei Aggregaten von Aggregaten können geschachtelte Aggregate einen untergeordneten Bereich angeben.

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.

  • Der Ausdruck darf keine Funktionen, , Last, Previousoder RunningValue enthaltenFirst.

  • 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 Sammlungen (Berichts-Generator und SSRS).

Weitere Informationen zu rekursiven Aggregaten finden Sie unter Erstellen rekursiver Hierarchiegruppen (Berichts-Generator und SSRS).

Beispiel

Das folgende Codebeispiel zeigt einen Ausdruck, der die Anzahl eindeutiger Wert ungleich NULL von Size für den Standardbereich oder für einen übergeordneten Gruppenbereich berechnet. Der Ausdruck wird einer Zelle in einer Zeile, die zur untergeordneten Gruppe GroupbySubcategorygehört, hinzugefügt. Die übergeordnete Gruppe ist GroupbyCategory. Der Ausdruck zeigt die Ergebnisse für GroupbySubcategory (Standardbereich) und anschließend für GroupbyCategory (übergeordneter Gruppenbereich) an.

Hinweis

Ausdrücke sollten keine tatsächlichen Wagenrückläufe und Zeilenumbrüche enthalten; diese sind im Beispielcode enthalten, um Dokumentationsrenderer zu unterstützen. Wenn Sie das folgende Beispiel kopieren, entfernen Sie Wagenrückläufe aus jeder Zeile.

="Distinct count (Subcategory): " & CountDistinct(Fields!Size.Value) &   
"Distinct count (Category): " & CountDistinct(Fields!Size.Value,"GroupbyCategory")  

Weitere Informationen

Ausdrucksverwendungen in Berichten (Berichts-Generator und SSRS)
Beispiele für Ausdrücke (Berichts-Generator und SSRS)
Datentypen in Ausdrücken (Berichts-Generator und SSRS)
Ausdrucksbereich für Gesamtwerte, Aggregate und integrierte Auflistungen (Berichts-Generator und SSRS)