CurrentOrdinal (MDX)

Returnerar det aktuella iterationsnumret inom en uppsättning under iterationen.

Syntax

  
Set_Expression.CurrentOrdinal  

Arguments

Set_Expression
Ett giltigt Multidimensional Expressions (MDX)-uttryck som returnerar en mängd.

Remarks

När man iterererar genom en mängd, såsom med Filter (MDX) eller Generate (MDX) -funktionerna, returnerar CurrentOrdinal-funktionen iterationsnumret.

Examples

Följande enkla exempel visar hur CurrentOrdinal kan användas med Generate för att returnera en sträng som innehåller namnet på varje objekt i en mängd tillsammans med dess position i mängden:

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]  

Den praktiska användningen av CurrentOrdinal är begränsad till mycket komplexa beräkningar. Följande exempel returnerar antalet produkter i mängden som är unika, och använder Order-funktionen för att ordna de icke-tomma tuplerna innan Filter-funktionen används. Funktionen CurrentOrdinal används för att jämföra och eliminera oavgjorta.

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]