Udostępnij za pośrednictwem


CurrentOrdinal (MDX)

Zwraca numer bieżącego iteracji zestaw podczas iteracji.

Set_Expression.CurrentOrdinal

Argumenty

  • Set_Expression
    Prawidłowe wyrażenie Multidimensional Expressions (MDX), która zwraca zestaw.

Remarks

Podczas iteracji zestaw, na przykład z Filtr (MDX) or Generowanie (MDX) funkcjiCurrentOrdinal 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 zestaw wraz z jego pozycji 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 ograniczona do bardzo złożonych obliczeń.W poniższym przykładzie zwraca liczbę produktów zestaw, które są unikatowe, za pomocą Order Funkcja Zamawianie krotek niepusty przed wykorzystaniem Filter Funkcja. The CurrentOrdinal funkcja is used to compare and eliminate ties.

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]