CountDistinct 関数 (レポート ビルダーおよび SSRS)
式で指定された NULL 以外の値が全部で何種類あるかを、指定されたスコープのコンテキストで評価して返します。
注 |
---|
SQL Server データ ツールのレポート ビルダーまたはレポート デザイナーを使用して、レポート定義 (.rdl) を作成および変更できます。これらの作成環境では、レポートおよび関連アイテムの作成方法、開く方法、および保存方法が異なります。詳細については、microsoft.com Web サイトの「レポート デザイナーおよびレポート ビルダーを使用したレポートのデザイン (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 を指定する入れ子集計を含めることができません。
詳細については、「集計関数リファレンス (レポート ビルダーおよび SSRS)」および「合計、集計、および組み込みコレクションの式のスコープ (レポート ビルダーおよび SSRS)」を参照してください。
再帰的集計の詳細については、「複数の再帰型階層グループの作成 (レポート ビルダーおよび SSRS)」を参照してください。
使用例
次のコード例では、既定のスコープおよび親グループのスコープで、Size の NULL でない一意の値の数を計算する式を示します。 この式は、子グループ GroupbySubcategory に属する行内のセルに追加されます。 親グループは GroupbyCategory です。 この式では、GroupbySubcategory (既定のスコープ) の結果、次に GroupbyCategory (親グループのスコープ) の結果が表示されます。
注 |
---|
実際には、式に復帰と改行を含めないでください。サンプル コードでは、ドキュメントを読みやすくするためにこれらが含まれています。 次の例をコピーする場合は、各行の復帰を削除してください。 |
="Distinct count (Subcategory): " & CountDistinct(Fields!Size.Value) &
"Distinct count (Category): " & CountDistinct(Fields!Size.Value,"GroupbyCategory")
関連項目
参照
概念
レポートでの式の使用 (レポート ビルダーおよび SSRS)