CurrentOrdinal (MDX)
Zwraca bieżącą liczbę iteracji w zestaw podczas iteracji.
Składnia
Set_Expression.CurrentOrdinal
Argumenty
- Set_Expression
Prawidłowe wyrażenie Multidimensional Expressions (MDX), które zwraca zestaw.
Uwagi
Gdy iteracja zestaw, na przykład z Filtr (MDX) lub Generate (mdx) funkcje, CurrentOrdinal funkcja zwraca liczbę iteracji.
Przykłady
W poniższym przykładzie prosty sposób CurrentOrdinal może być używany z Generate zwraca ciąg zawierający nazwę każdego element w zestaw wraz z jego element w zestaw:
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 wykorzystanie CurrentOrdinal jest ograniczone do bardzo złożone obliczenia.Poniższy przykład zwraca liczbę produktów w zestaw , które są unikatowe, za pomocą Order Funkcja Zamawianie krotek niepusty przed wykorzystaniem Filter funkcji.CurrentOrdinal Funkcja jest używana do porównania i wyeliminować więzi.
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]