Aggregate 関数 (Reporting Services)

データ プロバイダの定義に従い、指定された式のカスタムの集計を返します。

構文

Aggregate(expression, scope)

パラメーター

戻り値の型

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

説明

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

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

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

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

注意注意

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

Aggregate 関数と Sum 関数の比較

Aggregate 関数はデータ プロバイダまたはデータ処理拡張機能によって計算される値を返すという点で、Aggregate 関数は Sum などの数値の集計関数と異なります。Sum などの数値の集計関数は、scope パラメータによって決まるデータセットの一連のデータを基にレポート プロセッサで計算される値を返します。詳細については、「式での組み込みのレポート関数と集計関数の使用 (Reporting Services)」に記載されている集計関数を参照してください。

使用例

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

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