Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
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]