先祖 (MDX)
指定したレベルまたはメンバーから指定した距離にある、指定したメンバーの先祖を返す関数。
構文
Level syntax
Ancestor(Member_Expression, Level_Expression)
Numeric syntax
Ancestor(Member_Expression, Distance)
引数
Member_Expression
メンバーを 1 つ返す有効な多次元式 (MDX) 式です。
Level_Expression
レベルを返す有効な多次元式 (MDX) 式。
距離
指定したメンバーからの距離を指定する有効な数値式。
解説
先祖関数では、関数に MDX メンバー式を指定し、メンバーの先祖であるレベルの MDX 式、またはそのメンバーの上のレベルの数を表す数値式のいずれかを指定します。 この情報を使用すると、 Ancestors 関数はそのレベルで先祖メンバーを返します。
Note
先祖メンバーだけでなく、先祖メンバーを含むセットを返すには、 先祖 (MDX) 関数を使用します。
レベル式が指定されている場合、 Ancestor 関数は指定したレベルで指定されたメンバーの先祖を返します。 指定したメンバーが指定したレベルと同じ階層内にない場合、関数はエラーを返します。
距離が指定されている場合、 Ancestor 関数は、メンバー式で指定された階層で指定されたステップ数である、指定されたメンバーの先祖を返します。 メンバーには、属性階層、ユーザー定義階層、または場合によっては親子階層のメンバーを指定できます。 1 の数値はメンバーの親を返し、2 の数はメンバーの祖父母 (存在する場合) を返します。 数値として 0 が指定された場合はそのメンバー自体を返します。
Note
親のレベルが不明であるか、名前を付けられない場合は、この形式の 先祖 関数を使用します。
例
次の例では、レベル式を使用し、オーストラリアの各State-Provinceのインターネット売上金額と、オーストラリアのインターネット売上合計の割合を返します。
WITH MEMBER Measures.x AS [Measures].[Internet Sales Amount] /
(
[Measures].[Internet Sales Amount],
Ancestor
(
[Customer].[Customer Geography].CurrentMember,
[Customer].[Customer Geography].[Country]
)
), FORMAT_STRING = '0%'
SELECT {[Measures].[Internet Sales Amount], Measures.x} ON 0,
{
Descendants
(
[Customer].[Customer Geography].[Country].&[Australia],
[Customer].[Customer Geography].[State-Province], SELF
)
} ON 1
FROM [Adventure Works]
次の例では、数値式を使用し、オーストラリアの各State-Provinceの Internet Sales Amount と、すべての国/地域の合計インターネット売上金額の割合を返します。
WITH MEMBER Measures.x AS [Measures].[Internet Sales Amount] /
(
[Measures].[Internet Sales Amount],
Ancestor
([Customer].[Customer Geography].CurrentMember, 2)
), FORMAT_STRING = '0%'
SELECT {[Measures].[Internet Sales Amount], Measures.x} ON 0,
{
Descendants
(
[Customer].[Customer Geography].[Country].&[Australia],
[Customer].[Customer Geography].[State-Province], SELF
)
} ON 1
FROM [Adventure Works]