Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Gibt während der Iteration die aktuelle Iterationsnummer innerhalb einer Menge zurück.
Syntax
Set_Expression.CurrentOrdinal
Argumente
Set_Expression
Ein gültiger Multidimensional Expressions (MDX)-Ausdruck, der eine Menge zurückgibt.
Bemerkungen
Beim Durchlaufen einer Menge, wie etwa mit den Funktionen Filter (MDX) oder Generate (MDX), gibt die CurrentOrdinal-Funktion die Iterationsnummer zurück.
Beispiele
Das folgende einfache Beispiel zeigt, wie CurrentOrdinal mit Generate verwendet werden kann, um eine Zeichenkette zurückzugeben, die den Namen jedes Elements in einer Menge sowie dessen Position in der Menge enthält:
WITH SET MySet AS [Customer].[Customer Geography].[Country].MEMBERS
MEMBER MEASURES.CURRENTORDINALDEMO AS
GENERATE(MySet, CSTR(MySet.CURRENTORDINAL) + ") " + MySet.CURRENT.ITEM(0).NAME, ", ")
SELECT MEASURES.CURRENTORDINALDEMO ON 0
FROM [Adventure Works]
Die praktische Anwendung von CurrentOrdinal beschränkt sich auf sehr komplexe Berechnungen. Das folgende Beispiel gibt die Anzahl der Produkte in der Menge zurück, die eindeutig sind, wobei die Order-Funktion verwendet wird, um die nicht-leeren Tupel zu ordnen, bevor die Filterfunktion verwendet wird. Die Funktion CurrentOrdinal wird verwendet, um Gleichstellungen zu vergleichen und zu eliminieren.
WITH MEMBER [Measures].[PrdTies] AS Count
(Filter
(Order
(NonEmpty
([Product].[Product].[Product].Members
, {[Measures].[Reseller Order Quantity]}
)
, [Measures].[Reseller Order Quantity]
, BDESC
) AS OrdPrds
, NOT((OrdPrds.CurrentOrdinal < OrdPrds.Count
AND [Measures].[Reseller Order Quantity] =
( [Measures].[Reseller Order Quantity]
, OrdPrds.Item
(OrdPrds.CurrentOrdinal
)
)
)
OR (OrdPrds.CurrentOrdinal > 1
AND [Measures].[Reseller Order Quantity] =
([Measures].[Reseller Order Quantity]
, OrdPrds.Item
(OrdPrds.CurrentOrdinal-2)
)
)
))
)
SELECT {[Measures].[PrdTies]} ON 0
FROM [Adventure Works]