CurrentMember (MDX)
反復処理の実行中に、指定された階層の現在のメンバを返します。
構文
Hierarchy_Expression.CurrentMember
引数
- Hierarchy_Expression
階層を返す有効な多次元式 (MDX) 式です。
説明
階層メンバのセットに対する反復処理の間、反復の各ステップにおいては、処理対象のメンバが現在のメンバになります。CurrentMember 関数は、そのメンバを返します。
重要 |
---|
表示可能な階層がディメンション内に 1 つしかない場合は、ディメンション名がその 1 つしかない階層に解決されるため、その階層はディメンション名でも階層名でも参照できます。たとえば、Measures.CurrentMember は、Measures ディメンション内に 1 つしかない階層に解決されるので、有効な 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])
現在のメンバは、クエリ内の軸で使用される階層で変更されます。したがって、軸で使用されていない、同じディメンション上の他の階層の現在のメンバも変更される場合があります。この動作は "autoexist" と呼ばれています。詳細については、「MDX の主な概念 (MDX)」を参照してください。たとえば、次のクエリでは、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]}