Udostępnij za pośrednictwem


Zlecenia (MDX)

Rozmieszcza członków określonych, opcjonalnie zachowania lub przerywanie hierarchii.

Numeric expression syntax
Order(Set_Expression, Numeric_Expression 
[ , { ASC | DESC | BASC | BDESC } ] )

String expression syntax
Order(Set_Expression, String_Expression 
[ , { ASC | DESC | BASC | BDESC } ] )

Argumenty

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

  • Numeric_Expression
    Prawidłowe wyrażenie liczbowe będące zwykle wyrażeniem Multidimensional Expressions (MDX) współrzędne komórka zwracające liczbę.

  • String_Expression
    Wyrażenie prawidłowy ciąg, który zazwyczaj jest to poprawne wyrażenie Multidimensional Expressions (MDX) od komórka koordynuje zwrotu to liczba wyrażona jako ciąg znaków.

Remarks

The Order funkcja can either be hierarchical (as specified by using the ASC or DESC flag) or nonhierarchical (as specified by using the BASC or BDESC flag; the B stands for "break hierarchy"). Jeśli ASC lub DESC jest określony, Order Funkcja najpierw Rozmieszcza elementy na podstawie ich pozycji w hierarchii, a następnie porządkuje każdego poziom. Jeśli BASC lub BDESC jest określony, Order Funkcja Rozmieszcza elementy członkowskie zestaw, bez względu na hierarchię. W flaga nie zostanie określona, ASC jest to wartość domyślna.

Przykłady

W poniższym przykładzie są zwracane, z Adventure Works moduł, liczba sprzedawcy zamówienia na [Sales Territory].[Northwest] element członkowski członkowski i wszystkie ascendants tego element członkowski członkowski. The Order funkcja reorders the zestaw that includes the [Sales Territory].[Northwest] element członkowski and its ascendants for the ROWS oś. The Order funkcja orders the zestaw from the topmost to the bottommost element członkowski, in hierarchical order as determined by the [Sales Territory] hierarchy.

SELECT
    Measures.[Reseller Order Count] ON COLUMNS,
    Order(
        Ascendants(
            [Sales Territory].[Sales Territory].[Northwest]
        ),
        DESC
    ) ON ROWS
FROM
    [Adventure Works]

W poniższym przykładzie są zwracane miara Reseller sprzedaży pięciu górny podkategorii sprzedaży produktów, niezależnie od hierarchii, w zależności od Reseller Gross Profit.The Subset funkcja is used to return only the first 5 tuples in the zestaw after the result is ordered using the Order funkcja.

SELECT Subset
   (Order 
      ([Product].[Product Categories].[SubCategory].members
         ,[Measures].[Reseller Gross Profit]
         ,BDESC
      )
   ,0
   ,5
   ) ON 0
FROM [Adventure Works]

W poniższym przykładzie użyto Rank Funkcja służąca do rangi składniki hierarchii Miasto, na podstawie miara Reseller kwota sprzedaży i wyświetla je w kolejności USZEREGOWANY. Za pomocą Order funkcja zamówienia pierwszy zestaw elementów członkowskich hierarchii Miasto, sortowanie jest wykonywana tylko raz i następnie następuje liniowej skanowania, zanim są prezentowane w posortowane w kolejności.

WITH 
SET OrderedCities AS Order
   ([Geography].[City].[City].members
   , [Measures].[Reseller Sales Amount], BDESC
   )
MEMBER [Measures].[City Rank] AS Rank
   ([Geography].[City].CurrentMember, OrderedCities)
SELECT {[Measures].[City Rank],[Measures].[Reseller Sales Amount]}  ON 0 
,Order
   ([Geography].[City].[City].MEMBERS
   ,[City Rank], ASC)
    ON 1
FROM [Adventure Works]

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
    , (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]