CurrentMember (MDX)
Gibt das aktuelle Element entlang einer angegebenen Hierarchie während einer Iteration zurück.
Syntax
Hierarchy_Expression.CurrentMember
Argumente
- Hierarchy_Expression
Ein gültiger MDX-Ausdruck (Multidimensional Expressions), der eine Hierarchie zurückgibt.
Hinweise
Bei der Iteration durch eine Menge von Hierarchieelementen stellt bei jedem Iterationsschritt das jeweils bearbeitete Element das aktuelle Element dar. Die CurrentMember-Funktion gibt dieses Element zurück.
Wichtig |
---|
Wenn eine Dimension nur eine einzige sichtbare Hierarchie enthält, kann auf die Hierarchie entweder mit dem Dimensionsnamen oder mit dem Hierarchienamen verwiesen werden, weil der Dimensionsname in seine einzige sichtbare Hierarchie aufgelöst wird. Measures.CurrentMember ist z. B. ein gültiger MDX-Ausdruck, weil er in die einzige vorhandene Hierarchie in der Measures-Dimension aufgelöst wird. |
Beispiele
Die folgende Abfrage zeigt die Verwendung von Currentmember, um aktuelle Elemente der Hierarchien auf der COLUMNS-, ROWS- und SLICE-Achse zu finden:
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])
Das aktuelle Element ändert sich in einer Hierarchie, die auf einer Achse in einer Abfrage verwendet wird. Infolgedessen kann sich das aktuelle Element in anderen Hierarchien der selben Dimension, die nicht auf einer Achse verwendet werden, ebenfalls ändern; dieses Verhalten wird als „auto-exists“ bezeichnet. Weitere Einzelheiten dazu können unter Schlüsselkonzepte in MDX (MDX) gefunden werden. Die folgende Abfrage zeigt beispielsweise, wie sich das aktuelle Element in der Calendar Year-Hierarchie der Date-Dimension mit dem aktuellen Element der Calendar-Hierarchie ändert, wenn dieses auf der ROWS-Achse angezeigt wird:
WITH MEMBER MEASURES.CURRENTYEAR AS
[Date].[Calendar Year].CURRENTMEMBER.NAME
SELECT
{MEASURES.CURRENTYEAR}
ON 0,
[Date].[Calendar].MEMBERS
ON 1
FROM [Adventure Works]
CurrentMember ist sehr wichtig, um bei Berechnungen den Kontext der Abfrage zu beachten, in denen sie verwendet werden. Das folgende Beispiel gibt die Bestellmenge jedes Produkts sowie den Prozentsatz der Bestellmengen nach Kategorie und Modell aus dem Adventure Works-Cube zurück. Die CurrentMember-Funktion identifiziert das Produkt, dessen Bestellmenge während der Berechnung verwendet werden soll.
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]}