Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Returnerar det aktuella iterationsnumret inom en uppsättning under iterationen.
Syntax
Set_Expression.CurrentOrdinal
Arguments
Set_Expression
Ett giltigt Multidimensional Expressions (MDX)-uttryck som returnerar en mängd.
Remarks
När man iterererar genom en mängd, såsom med Filter (MDX) eller Generate (MDX) -funktionerna, returnerar CurrentOrdinal-funktionen iterationsnumret.
Examples
Följande enkla exempel visar hur CurrentOrdinal kan användas med Generate för att returnera en sträng som innehåller namnet på varje objekt i en mängd tillsammans med dess position i mängden:
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]
Den praktiska användningen av CurrentOrdinal är begränsad till mycket komplexa beräkningar. Följande exempel returnerar antalet produkter i mängden som är unika, och använder Order-funktionen för att ordna de icke-tomma tuplerna innan Filter-funktionen används. Funktionen CurrentOrdinal används för att jämföra och eliminera oavgjorta.
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]