Compartir por


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
Expresión MDX (Expresiones multidimensionales) válida que devuelve un conjunto.

Comentarios

Al recorrer en iteración un conjunto, como con las funciones Filter (MDX) o Generate (MDX), la función CurrentOrdinal devuelve el número de iteración.

Ejemplos

En el ejemplo simple siguiente se muestra cómo se puede usar CurrentOrdinal 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. En el ejemplo siguiente se devuelve el número de productos del conjunto que son únicos, mediante la función Order para ordenar las tuplas no vacías antes de usar la función Filter . La función CurrentOrdinal se usa para comparar y eliminar los 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 también

Referencia de funciones MDX (MDX)