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")