CurrentMember (MDX)
反復処理の実行中に、指定された階層の現在のメンバーを返します。
構文
Hierarchy_Expression.CurrentMember
引数
Hierarchy_Expression
階層を返す有効な多次元式 (MDX) 式。
解説
階層メンバーのセットに対する反復処理の間、反復の各ステップにおいては、処理対象のメンバーが現在のメンバーになります。 CurrentMember 関数は、そのメンバーを返します。
重要
表示可能な階層がディメンション内に 1 つしかない場合は、ディメンション名がその 1 つしかない階層に解決されるため、その階層はディメンション名でも階層名でも参照できます。 たとえば、 Measures.CurrentMember
は Measures ディメンションの唯一の階層に解決されるため、有効な MDX 式です。
例
次のクエリは、 Currentmember を使用して、列、行、スライス軸の階層から現在のメンバーを検索する方法を示しています。
WITH
MEMBER MEASURES.CURRENTDATE AS [Date].[Calendar].CURRENTMEMBER.NAME
MEMBER MEASURES.CURRENTPRODUCT AS [Product].[Product Categories].CURRENTMEMBER.NAME
MEMBER MEASURES.CURRENTMEASURE AS MEASURES.CURRENTMEMBER.NAME
MEMBER MEASURES.CURRENTCUSTOMER AS [Customer].[Customer Geography].CURRENTMEMBER.NAME
SELECT
[Product].[Product Categories].[Category].MEMBERS *
{MEASURES.CURRENTDATE,
MEASURES.CURRENTPRODUCT,
MEASURES.CURRENTMEASURE,
MEASURES.CURRENTCUSTOMER} ON 0,
[Date].[Calendar].MEMBERS ON 1
FROM [Adventure Works]
WHERE ([Customer].[Customer Geography].[Country].&[Australia])
現在のメンバーは、クエリ内の軸で使用される階層で変更されます。 したがって、軸で使用されていない同じディメンション上の他の階層の現在のメンバーも変更される可能性があります。この動作は "auto-exists" と呼ばれ、詳細については、「 MDX の主要概念 (Analysis Services)」を参照してください。 たとえば、次のクエリは、Date ディメンションの Calendar Year 階層の現在のメンバーが Calendar 階層の現在のメンバーとどのように変化するかを示しています。後者が [行] 軸に表示されます。
WITH
MEMBER MEASURES.CURRENTYEAR AS [Date].[Calendar Year].CURRENTMEMBER.NAME
SELECT
{MEASURES.CURRENTYEAR} ON 0,
[Date].[Calendar].MEMBERS ON 1
FROM [Adventure Works]
CurrentMember は、使用されているクエリのコンテキストを計算に認識させる上で非常に重要です。 次の例では、 Adventure Works キューブから、各製品の注文数量と、カテゴリとモデルごとの注文数量の割合を返します。 CurrentMember 関数は、注文数量が計算中に使用される製品を識別します。
WITH
MEMBER [Measures].[Order Percent by Category] AS
CoalesceEmpty
(
([Product].[Product Categories].CurrentMember,
Measures.[Order Quantity]) /
(
Ancestor
( [Product].[Product Categories].CurrentMember,
[Product].[Product Categories].[Category]
), Measures.[Order Quantity]
), 0
), FORMAT_STRING='Percent'
SELECT
{Measures.[Order Quantity],
[Measures].[Order Percent by Category]} ON COLUMNS,
{[Product].[Product].Members} ON ROWS
FROM [Adventure Works]
WHERE {[Date].[Calendar Year].[Calendar Year].&[2003]}