次の方法で共有


CountDistinct 関数 (レポート ビルダー 3.0 および SSRS)

式で指定された NULL 以外の値が全部で何種類あるかを、指定されたスコープのコンテキストで評価して返します。

注意

レポート定義 (.rdl) は、Business Intelligence Development Studio のレポート ビルダー 3.0 およびレポート デザイナーで作成および変更できます。これらの作成環境では、レポートおよび関連アイテムの作成方法、開く方法、および保存方法が異なります。詳細については、microsoft.com Web サイトの「レポート デザイナーとレポート ビルダー 3.0 でのレポートのデザイン (SSRS)」を参照してください。

構文

CountDistinct(expression, scope, recursive)

パラメーター

  • expression
    (Variant) この集計関数の実行対象の式です。

  • scope
    (String) 省略可。集計関数の適用先となるレポート アイテムを含むデータセット、グループ、またはデータ領域の名前です。scope を指定しない場合、現在のスコープが使用されます。

  • recursive
    (列挙型) 省略可。Simple (既定値) または RdlRecursive です。集計を再帰的に実行するかどうかを指定します。

戻り値の型

Integer 値を返します。

説明

scope の値は文字列定数である必要があり、式にすることはできません。外部の集計または他の集計を指定しない集計では、scope は現在のスコープまたはコンテナー スコープを参照する必要があります。集計の集計では、入れ子になった集計に、子のスコープを指定できます。

Expression には、入れ子になった集計関数への呼び出しを含めることができます。ただし、次に示すように、これには例外および条件があります。

  • 入れ子集計の Scope は、外部集計のスコープと同じであるか、そのスコープに含まれている必要があります。式内のすべてのスコープについては、1 つのスコープがそれ以外のすべてのスコープに対する子であるようなリレーションシップが必要です。

  • 入れ子集計の Scope には、データセット名は使用できません。

  • Expression には、First、Last、Previous、または RunningValue の各関数を含めることができません。

  • Expression には、recursive を指定する入れ子集計を含めることができません。

詳細については、「集計関数リファレンス (レポート ビルダー 3.0 および SSRS)」および「合計、集計、および組み込みコレクションの式のスコープについて (レポート ビルダー 3.0 および SSRS)」を参照してください。

再帰的集計の詳細については、「再帰型階層グループの作成 (レポート ビルダー 3.0 および SSRS)」を参照してください。

使用例

次のコード例では、既定のスコープおよび親グループのスコープで、Size の NULL でない一意の値の数を計算する式を示します。この式は、子グループ GroupbySubcategory に属する行内のセルに追加されます。親グループは GroupbyCategory です。この式では、GroupbySubcategory (既定のスコープ) の結果、次に GroupbyCategory (親グループのスコープ) の結果が表示されます。

注意

実際には、式に復帰と改行を含めないでください。サンプル コードでは、ドキュメントを読みやすくするためにこれらが含まれています。次の例をコピーする場合は、各行の復帰を削除してください。

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