次の方法で共有


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

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

Note

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

構文

  
CountDistinct(expression, scope, recursive)  

パラメーター

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

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

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

戻り値の型

Integer を返します。

解説

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

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

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

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

  • には、、LastPreviousまたは RunningValue 関数を含Firstめてはいけません。

  • 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)
式の例 (レポート ビルダーおよび SSRS)
式で使用されるデータ型 (レポート ビルダーおよび SSRS)
合計、集計、および組み込みコレクションの式のスコープ (レポート ビルダーおよび SSRS)