Aggregate 関数 (Reporting Services)
データ プロバイダの定義に従い、指定された式のカスタムの集計を返します。
構文
Aggregate(expression, scope)
パラメーター
expression
この集計関数の実行対象の式です。指定する式は、単純なフィールド参照の式である必要があります。scope
(String) 集計関数の適用先となるレポート アイテムを含むデータセット、グループ、またはデータ領域の名前です。scope を指定しなかった場合は、現在のスコープが使用されます。scope パラメータの詳細については、「式での組み込みのレポート関数と集計関数の使用 (Reporting Services)」および「合計およびその他の集計の計算 (Reporting Services)」を参照してください。
戻り値の型
戻り値の型はデータ プロバイダによって決められます。プロバイダがこの関数をサポートしていない場合や、データが取得できなかった場合は、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")