レポート ビルダー関数 - ページ分割されたレポートの CountDistinct 関数 (レポート ビルダー)
適用対象: Microsoft レポート ビルダー (SSRS) Power BI Report Builder SQL Server Data Tools のレポート デザイナー
ページ分割されたレポートで、式で指定された NULL 以外の値が全部で何種類あるかを、指定されたスコープのコンテキストで評価して返します。
注意
ページ分割されたレポートの定義ファイル (.rdl) は、Microsoft レポート ビルダー、Power BI レポート ビルダー、または SQL Server Data Tools のレポート デザイナーを使用して作成および変更できます。
構文
CountDistinct(expression, scope, recursive)
パラメーター
式 (expression)
(バリアント) この集計関数の実行対象の式です。
スコープ (scope)
(文字列) 省略可。 集計関数の適用先となるレポート アイテムを含むデータセット、グループ、またはデータ領域の名前です。 scope を指定しない場合、現在のスコープが使用されます。
再帰
(列挙型) 省略可。 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")