Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Devolve o número de iteração atual dentro de um conjunto durante a iteração.
Syntax
Set_Expression.CurrentOrdinal
Arguments
Set_Expression
Uma expressão válida de Expressões Multidimensionais (MDX) que devolve um conjunto.
Observações
Ao iterar através de um conjunto, como com as funções Filter (MDX) ou Generate (MDX ), a função CurrentOrdinal devolve o número de iteração.
Examples
O exemplo simples seguinte mostra como o CurrentOrdinal pode ser usado com o Generate para devolver uma string contendo o nome de cada item num conjunto juntamente com a 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]
A utilização prática do CurrentOrdinal está limitada a cálculos muito complexos. O exemplo seguinte devolve o número de produtos no conjunto que são únicos, usando a função Ordem para ordenar as tuplas não vazias antes de utilizar a função Filtro . A função CurrentOrdinal é usada para comparar e 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]