Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Podczas iteracji zwraca aktualną liczbę iteracji w obrębie zbioru.
Syntax
Set_Expression.CurrentOrdinal
Arguments
Wyrażenie_docelowe
Poprawne wyrażenie z wyrażeń wielowymiarowych (MDX), które zwraca zbiór.
Remarks
Podczas iteracji przez zbiór, na przykład z funkcjami Filtr (MDX) lub Generuj (MDX), funkcja CurrentOrdinal zwraca numer iteracji.
Examples
Poniższy prosty przykład pokazuje, jak CurrentOrdinal może być użyte z Generate do zwracania ciągu zawierającego nazwę każdego elementu w zbiorze wraz z jego pozycją w zbiorze:
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]
Praktyczne zastosowanie CurrentOrdinal ogranicza się do bardzo złożonych obliczeń. Poniższy przykład zwraca liczbę iloczynów w zbiorze, które są unikalne, używając funkcji Porządku do uporządkowania niepustych krotek przed użyciem funkcji Filtr. Funkcja CurrentOrdinal służy do porównywania i eliminowania powiązań.
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]