CurrentOrdinal (MDX)

Retourne le numéro d’itération courant dans un ensemble pendant l’itération.

Syntax

  
Set_Expression.CurrentOrdinal  

Arguments

Set_Expression
Une expression valide des expressions multidimensionnelles (MDX) qui retourne un ensemble.

Remarks

Lors de l’itération à travers un ensemble, comme avec les fonctions Filter (MDX) ou Generate (MDX ), la fonction CurrentOrdinal retourne le numéro d’itération.

Exemples

L’exemple simple suivant montre comment CurrentOrdinal peut être utilisé avec Generate pour retourner une chaîne contenant le nom de chaque élément d’un ensemble ainsi que sa position dans l’ensemble :

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]  

L’utilisation pratique de CurrentOrdinal se limite à des calculs très complexes. L’exemple suivant retourne le nombre de produits dans l’ensemble qui sont uniques, en utilisant la fonction d’ordre pour ordonner les tuples non vides avant d’utiliser la fonction de filtre . La fonction CurrentOrdinal est utilisée pour comparer et éliminer les égalités.

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]