CurrentOrdinal (MDX)

Devuelve el número de iteración actual dentro de un conjunto durante la iteración.

Sintaxis

  
Set_Expression.CurrentOrdinal  

Argumentos

Set_Expression
Una expresión válida de Expresiones Multidimensionales (MDX) que devuelve un conjunto.

Remarks

Al iterar a través de un conjunto, como con las funciones Filter (MDX) o Generate (MDX ), la función CurrentOrdinal devuelve el número de iteración.

Examples

El siguiente ejemplo sencillo muestra cómo CurrentOrdinal puede usarse con Generate para devolver una cadena que contiene el nombre de cada elemento de un conjunto junto con su posición en el 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]  

El uso práctico de CurrentOrdinal se limita a cálculos muy complejos. El siguiente ejemplo devuelve el número de productos en el conjunto que son únicos, usando la función de Orden para ordenar las tuplas no vacías antes de utilizar la función de filtro . La función CurrentOrdinal se utiliza para comparar y eliminar empates.

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]