Partilhar via


CurrentOrdinal (MDX)

Retorna o número de iteração atual dentro de um conjunto durante a iteração.

Sintaxe

  
Set_Expression.CurrentOrdinal  

Argumentos

Set_Expression
Uma expressão MDX válida que retorna um conjunto.

Comentários

Ao iterar por meio de um conjunto, como com as funções Filtro (MDX) ou Gerar (MDX), a função CurrentOrdinal retorna o número de iteração.

Exemplos

O exemplo simples a seguir mostra como CurrentOrdinal pode ser usado com Generate para retornar uma cadeia de caracteres que contém o nome de cada item em um conjunto junto com sua posição no conjunto:

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]

O uso prático de CurrentOrdinal é limitado a cálculos muito complexos. O exemplo a seguir retorna o número de produtos no conjunto que são exclusivos, usando a função Order para ordenar as tuplas não vazias antes de utilizar a função Filter . A função CurrentOrdinal é usada para comparar e eliminar vínculos.

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]  

Consulte Também

Referência de função MDX (MDX)