DRILLTHROUGH ステートメント (MDX)
キューブ内の指定されたセルの作成に使用されたテーブル行を取得します。
構文
DRILLTHROUGH[MAXROWSUnsigned_Integer]
<MDX SELECT statement>
[RETURNSet_of_Attributes_and_Measures
[,Set_of_Attributes_and_Measures ...]
]
引数
Unsigned_Integer
正の整数値です。MDX SELECT statement
任意の有効な多次元式 (MDX) 式の SELECT ステートメントです。Set_of_Attributes_and_Measures
ディメンションの属性とメジャーのコンマ区切りのリストです。
説明
ドリルスルーとは、エンド ユーザーが詳細情報を取得するためにキューブから 1 つのセルを選択してそのセルのソース データから結果セットを取得する操作です。 既定では、ドリルスルーの結果セットは、選択したキューブ セルの値を計算するために評価されたテーブル行から導き出されます。 エンド ユーザーがドリルスルーを行う場合は、クライアント アプリケーションでこの機能がサポートされている必要があります。 Microsoft SQL Server Analysis Services では、ROLAP パーティションまたはディメンションにクエリを実行する場合を除いて、結果は MOLAP ストレージから直接取得されます。
重要 |
---|
ドリルスルーのセキュリティは、キューブで定義された全般的なセキュリティ オプションに基づいています。 ユーザーが MDX を使用して一部のデータを取得できない場合、そのユーザーはドリルスルーでも同様の制限を受けます。 |
対象のセルは、MDX ステートメントによって指定します。 MAXROWS 引数に指定する値は、結果の行セットによって返される最大行数です。
既定では、返される最大行数は 10,000 行です。 つまり、MAXROWS を指定しない場合は、最大 10,000 行返されます。 この値がシナリオには小さすぎる場合、MAXROWS 20000 のように、大きな数値を MAXROWS に設定できます。 全体的に小さすぎる場合は、OLAP\Query\DefaultDrillthroughMaxRows サーバー プロパティを変更することで、既定値を大きくできます。 このプロパティの変更の詳細については、「Analysis Services のサーバーのプロパティの構成」を参照してください。
特に指定しない限り、返される列には、指定したメジャーのメジャー グループに関連するすべてのディメンション (多対多ディメンションを除く) に対応する粒度属性がすべて含められます。 ディメンションとメジャー グループを区別するために、キューブ ディメンションの先頭には $ が付いています。 RETURN 句は、ドリルスルー クエリで返す列を指定する際に使用します。 次の関数は、RETURN 句を使用して 1 つの属性またはメジャーに適用できます。
Name(attribute_name)
指定された属性メンバーの名前を返します。UniqueName(attribute_name)
指定された属性メンバーの一意名を返します。Key(attribute_name[, N])
指定された属性メンバーのキーを返します。N は、複合キーの列 (存在する場合) を指定します。 N の既定値は 1 です。Caption(attribute_name)
指定された属性メンバーのキャプションを返します。MemberValue(attribute_name)
指定された属性メンバーのメンバー値を返します。Translation(attribute_name[, N])
指定された属性メンバーの翻訳済みの値を返します。N は言語です。CustomRollup(attribute_name)
指定された属性メンバーのカスタム ロールアップ式を返します。CustomRollupProperties(attribute_name)
指定された属性メンバーのカスタム ロールアップ プロパティを返します。UnaryOperator(attribute_name)
指定された属性メンバーの単項演算子を返します。
例
次の例では、Australia の Reseller Sales Amount メジャー (既定のメジャー) に対応する 2007 年 7 月のセルを指定しています。 RETURN 句では、このセルの基になる各売上の日付、製品モデルの名前、従業員名、売上高、税額、および製品原価が返されるように指定しています。
DRILLTHROUGH
SELECT
([Date].[Calendar].[Month].[July 2007])
ON 0
FROM [Adventure Works]
WHERE [Geography].[Country].[Australia]
RETURN
[$Date].[Date]
,KEY([$Product].[Model Name])
,NAME([$Employee].[Employee])
,[Reseller Sales].[Reseller Sales Amount]
,[Reseller Sales].[Reseller Tax Amount]
,[Reseller Sales].[Reseller Standard Product Cost]