Fonction CountDistinct (Générateur de rapports version 3.0 et SSRS)

Retourne le nombre de toutes les valeurs non Null distinctes spécifiées par l'expression, évaluée dans le contexte de l'étendue donnée.

Notes

Vous pouvez créer et modifier des définitions de rapports (.rdl) dans le Générateur de rapports version 3.0 et dans le Concepteur de rapports, dans Business Intelligence Development Studio. Chaque environnement de création offre différentes possibilités pour créer, ouvrir et enregistrer des rapports et des éléments connexes. Pour plus d'informations, consultez Conception de rapports dans le Concepteur de rapports et le Générateur de rapports version 3.0 (SSRS) sur le site Web Microsoft.

Syntaxe

CountDistinct(expression, scope, recursive)

Paramètres

  • expression
    (Variant) Expression sur laquelle effectuer l'agrégation.

  • scope
    (String) Facultatif. Nom d'un dataset, d'un groupe ou d'une région de données qui contient les éléments de rapport auxquels appliquer la fonction d'agrégation. Si le paramètre scope n'est pas spécifié, l'étendue actuelle est utilisée.

  • recursive
    (Type énuméré) Facultatif. Simple (par défaut) ou RdlRecursive. Indique s'il faut effectuer l'agrégation de manière récursive.

Type de valeur retournée

Retourne un Integer.

Notes

La valeur du paramètre scope doit être une constante de chaîne et ne peut pas être une expression. Pour les agrégats externes ou les agrégats qui ne spécifient pas d'autres agrégats, le paramètre scope doit faire référence à l'étendue actuelle ou à une étendue contenante. Pour les agrégats d'agrégats, les agrégats imbriqués peuvent spécifier une étendue enfant.

Expression peut contenir des appels aux fonctions d'agrégation imbriquées avec les exceptions et conditions suivantes :

  • Le paramètre Scope des agrégats imbriqués doit être identique à l'étendue de l'agrégat externe ou contenu par celle-ci. Pour toutes les étendues distinctes de l'expression, une étendue doit figurer dans une relation enfant avec toutes les autres étendues.

  • Le paramètre Scope des agrégats imbriqués ne peut pas être le nom d'un dataset.

  • Expression ne doit pas contenir les fonctions First, Last, Previous ou RunningValue.

  • Expression ne doit pas contenir les agrégats imbriqués qui spécifient recursive.

Pour plus d'informations, consultez Référence aux fonctions d'agrégation (Générateur de rapports version 3.0 et SSRS) et Présentation de l'étendue des expressions pour les totaux, les agrégats et les collections intégrées (Générateur de rapports version 3.0 et SSRS).

Pour plus d'informations sur les agrégats récursifs, consultez Création de groupes de hiérarchies récursives (Générateur de rapports version 3.0 et SSRS).

Exemple

L'exemple de code suivant affiche une expression qui calcule le nombre de valeurs non Null uniques de Size pour l'étendue par défaut et pour une étendue de groupe parent. L'expression est ajoutée à une cellule d'une ligne qui appartient au groupe enfant GroupbySubcategory. Le groupe parent est GroupbyCategory. L'expression affiche les résultats pour GroupbySubcategory (étendue par défaut) et pour GroupbyCategory (étendue de groupe parent).

Notes

Les expressions ne doivent pas contenir de retours chariot ni de sauts de ligne réels ; ceux-ci sont inclus dans l'exemple de code pour prendre en charge des convertisseurs de documentation. Si vous copiez l'exemple suivant, supprimez les retours chariot de chaque ligne.

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