CurrentOrdinal (MDX)

Gibt die aktuelle Iterationsnummer in einer Menge während einer Iteration zurück.

Syntax

  
Set_Expression.CurrentOrdinal  

Argumente

Set_Expression
Ein gültiger MDX-Ausdruck (Multidimensional Expressions), der eine Menge zurückgibt.

Bemerkungen

Beim Durchlaufen einer Gruppe, z. B. 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 Zeichenfolge zurückzugeben, die den Namen jedes Elements in einer Gruppe zusammen mit seiner Position in der Gruppe 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 Nutzen von CurrentOrdinal beschränkt sich auf sehr komplexe Berechnungen. Im folgenden Beispiel wird die Anzahl der Produkte in der Gruppe zurückgegeben, die eindeutig sind, wobei die Order-Funktion verwendet wird, um die nicht leeren Tupel zu sortieren, bevor die Filterfunktion verwendet wird. Die CurrentOrdinal-Funktion wird verwendet, um Verbindungen zu vergleichen und zu beseitigen.

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]  

Weitere Informationen

MDX-Funktionsreferenz (MDX)