CurrentOrdinal (MDX)
傳回反復專案期間集合內的目前反覆運算編號。
語法
Set_Expression.CurrentOrdinal
引數
Set_Expression
傳回集合的有效多維度運算式 (MDX) 運算式。
備註
逐一查看集合時,例如使用 Filter (MDX) 或 Generate (MDX) 函式, CurrentOrdinal 函 式會傳回反覆運算編號。
範例
下列簡單範例示範 CurrentOrdinal 如何 搭配 Generate 使用,以傳回字串,其中包含集合中每個專案的名稱,以及其在集合中的位置:
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]
CurrentOrdinal 的實際使用僅限於非常複雜的計算。 下列範例會傳回集合中唯一的產品數目,使用 Order 函式在使用 Filter 函式之前排序非空白 Tuple。 CurrentOrdinal 函式可用來比較和消除系結。
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]