CurrentOrdinal (MDX)
Restituisce il numero di iterazioni corrente da un set durante l'iterazione.
Sintassi
Set_Expression.CurrentOrdinal
Argomenti
Set_Expression
Espressione MDX (Multidimensional Expression) valida che restituisce un set.
Osservazioni:
Durante l'iterazione di un set, ad esempio con le funzioni Filter (MDX) o Generate (MDX), la funzione CurrentOrdinal restituisce il numero di iterazione.
Esempi
Nell'esempio semplice seguente viene illustrato come è possibile usare CurrentOrdinal con Generate per restituire una stringa contenente il nome di ogni elemento di un set insieme alla relativa posizione nel set:
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]
L'utilizzo pratico di CurrentOrdinal è limitato ai calcoli molto complessi. Nell'esempio seguente viene restituito il numero di prodotti nel set univoci, usando la funzione Order per ordinare le tuple non vuote prima di utilizzare la funzione Filter . La funzione CurrentOrdinal viene usata per confrontare ed eliminare i legami.
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]