Share via


CurrentOrdinal (MDX)

Retourne le numéro d'itération actuel dans un jeu lors d'une itération.

Syntaxe

Set_Expression.CurrentOrdinal

Arguments

  • Set_Expression
    Expression MDX (Multidimensional Expressions) valide qui retourne un jeu.

Notes

Lorsque vous procédez à une itération dans un jeu, notamment avec les fonctions Filter (MDX) ou Generate (MDX), la fonction CurrentOrdinal retourne le numéro d'itération.

Exemples

L'exemple simple suivant illustre l'utilisation de CurrentOrdinal avec Generate pour retourner une chaîne qui contient le nom de chaque élément dans un jeu avec sa position dans le jeu :

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 est limitée aux calculs très complexes. L'exemple ci-dessous retourne le nombre de produits uniques dans le jeu à l'aide de la fonction Order pour classer les tuples non vides avant d'utiliser la fonction Filter. La fonction CurrentOrdinal est utilisée pour comparer et éliminer les liens.

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]