Freigeben über


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.

Hinweise

Beim Iterieren durch eine Menge, z. B. mithilfe der Filter (MDX)-Funktion oder der Generate (MDX)-Funktion, gibt die CurrentOrdinal-Funktion die Iterationsnummer zurück.

Beispiele

Das folgende einfache Beispiel zeigt, wie CurrentOrdinal zusammen mit Generate verwendet werden kann, um eine Zeichenfolge zurückzugeben, die den Namen jedes einzelnen Elements einer Menge mit seiner 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 Nutzen von CurrentOrdinal beschränkt sich auf sehr komplexe Berechnungen. Im folgenden Beispiel wird die Anzahl der eindeutigen Produkte in der Menge zurückgegeben. Dabei wird die Order-Funktion verwendet, um die nicht leeren Tupel vor Verwendung der Filter-Funktion zu sortieren. Die CurrentOrdinal-Funktion wird zum Vergleichen und Ausschließen von Gleichrangigkeit verwendet.

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]

Siehe auch

Verweis

MDX-Funktionsreferenz (MDX)