共用方式為


CurrentOrdinal (MDX)

反覆運算時傳回集合中目前的反覆運算編號。

語法

Set_Expression.CurrentOrdinal

引數

  • Set_Expression
    傳回集合的有效多維度運算式 (MDX) 運算式。

備註

在集合反覆運算時 (例如使用 Filter (MDX)Generate (MDX) 函數),CurrentOrdinal 函數會傳回反覆運算編號。

範例

下列簡單範例示範如何搭配 Generate 使用 CurrentOrdinal 來傳回一個字串,此字串包含集合中每一個項目的名稱連同該項目在集合中的位置:

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 函數來排序非空的 Tuple,再利用 Filter 函數。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]

請參閱

參考