Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Během iterace vrací aktuální číslo iterace v rámci množiny.
Syntax
Set_Expression.CurrentOrdinal
Arguments
Nastavit_výraz
Platný výraz Multidimensional Expressions (MDX), který vrací množinu.
Remarks
Při iteraci v množině, například pomocí funkcí Filter (MDX) nebo Generate (MDX), funkce CurrentOrdinal vrací číslo iterace.
Examples
Následující jednoduchý příklad ukazuje, jak lze pomocí CurrentOrdinal s Generate vrátit řetězec obsahující název každé položky v množině spolu s její pozicí v množině:
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]
Praktické využití CurrentOrdinal je omezeno na velmi složité výpočty. Následující příklad vrací počet součinů v množině, které jsou jedinečné, přičemž funkce Order slouží k uspořádání neprázdných n-tic před využitím funkce Filter . Funkce CurrentOrdinal se používá k porovnání a odstranění shod.
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]