次の方法で共有


レポート ビルダー関数 - ページ分割されたレポートの Aggregate 関数 (レポート ビルダー)

適用対象: Microsoft レポート ビルダー (SSRS) Power BI Report Builder SQL Server Data Tools のレポート デザイナー

データ プロバイダーによる定義に従い、ページ分割されたレポートで指定された式のカスタム集計を返します。

Note

ページ分割されたレポートの定義ファイル (.rdl) は、Microsoft レポート ビルダー、Power BI レポート ビルダー、または SQL Server Data Tools のレポート デザイナーを使用して作成および変更できます。

構文

  
Aggregate(expression, scope)  

パラメーター

式 (expression)
この集計関数の実行対象の式です。 指定する式は、単純なフィールド参照の式である必要があります。

スコープ (scope)
(String) 集計関数の適用先となるレポート アイテムを含むデータセット、グループ、またはデータ領域の名前です。 Scope は、文字列定数とする必要があります。式とすることはできません。 scope を指定しない場合、現在のスコープが使用されます。

戻り値の型

戻り値の型はデータ プロバイダーによって決められます。 プロバイダーがこの関数をサポートしていない場合や、データが取得できなかった場合は、 Nothing が返されます。

解説

Aggregate 関数を使用すると、外部データ ソース上で計算される集計を使用できます。 この機能のサポートは、データ拡張機能によって異なります。 たとえば、SQL Server Analysis Services データ処理拡張機能では、MDX クエリからフラットな行セットを取得します。 結果セット内の一部の行には、データ ソース サーバーで計算される集計値を含めることができます。 これらは、 サーバー集計と呼ばれます。 サーバー集計を Analysis Services のグラフィカル クエリ デザイナーで表示するには、ツール バーの [集計の表示] ボタンを使用します。 詳細については、「Analysis Services の MDX クエリ デザイナーのユーザー インターフェイス (レポート ビルダー)」を参照してください。

Tablix データ領域の詳細行にデータセットの集計値および詳細値の組み合わせを表示する場合、通常、サーバー集計値は詳細データではないため含まれません。 ただし、データセットから取得したすべての値を表示し、集計データを計算および表示する方法をカスタマイズできます。

レポート ビルダーでは、サーバー集計値を詳細行に表示するかどうかを判断するために、レポート内の式での Aggregate 関数の使用を検出します。 データ領域の式に Aggregate を含めると、サーバー集計値は、詳細行ではなくグループの合計行または総計行のみに表示されます。 サーバー集計値を詳細行に表示する場合は、 Aggregate 関数を使用しないでください。

この既定の動作を変更するには、 [データセットのプロパティ] ダイアログ ボックスの [小計を詳細行として解釈] オプションの値を変更します。 このオプションを Trueに設定すると、サーバー集計値を含むすべてのデータが詳細データとして表示されます。 Falseに設定すると、サーバー集計値は合計として表示されます。 このプロパティの設定は、このデータセットにリンクされているすべてのデータ領域に影響します。

Note

Aggregate を参照するレポート アイテムを含むすべてのグループでは、そのグループ式に単純なフィールド参照 ( [FieldName]など) が指定されている必要があります。 複雑なグループ式を使用するデータ領域で Aggregate を使用することはできません。 SQL Server Analysis Services データ処理拡張機能では、Aggregate 関数を使用した集計がサポートされるように、(MemberProperty 型ではなく) LevelProperty 型の MDX フィールドをクエリに含める必要があります。

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

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

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

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

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

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

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

Aggregate 関数と Sum 関数の比較

Aggregate 関数はデータ プロバイダーまたはデータ処理拡張機能によって計算される値を返すという点で、 Sum 関数は Aggregate などの数値の集計関数と異なります。 Sum などの数値の集計関数は、 scope パラメーターによって決まるデータセットの一連のデータを基にレポート プロセッサで計算される値を返します。 詳細については、「集計関数リファレンス (レポート ビルダーおよび SSRS)」に示されている集計関数を参照してください。

次のコード例では、 LineTotalフィールドのサーバー集計値を取得する式を示します。 式は、 GroupbyOrderグループに属する行内のセルに追加されます。

=Aggregate(Fields!LineTotal.Value, "GroupbyOrder")