Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Układa członków określonego zbioru, opcjonalnie zachowując lub łamiąc hierarchię.
Syntax
Numeric expression syntax
Order(Set_Expression, Numeric_Expression
[ , { ASC | DESC | BASC | BDESC } ] )
String expression syntax
Order(Set_Expression, String_Expression
[ , { ASC | DESC | BASC | BDESC } ] )
Arguments
Wyrażenie_docelowe
Poprawne wyrażenie z wyrażeń wielowymiarowych (MDX), które zwraca zbiór.
Numeric_Expression
Poprawne wyrażenie liczbowe, które zazwyczaj jest wyrażeniem wielowymiarowych (MDX) współrzędnych komórek zwracających liczbę.
String_Expression
Poprawne wyrażenie w ciągu danych, które zazwyczaj jest poprawnym wyrażeniem wielowymiarowych (MDX) współrzędnych komórek zwracających liczbę wyrażoną jako ciąg znaków.
Remarks
Funkcja Order może być hierarchiczna (zgodnie z użyciem flagi ASC lub DESC ) lub niehierarchiczna (zgodnie z użyciem flagi BASC lub BDESC ; B oznacza "break hierarchy"). Jeśli określono ASC lub DESC , funkcja Order najpierw układa członków zgodnie z ich pozycją w hierarchii, a następnie porządkuje każdy poziom. Jeśli określono BASC lub BDESC , funkcja Order układa członków w zbiorze bez względu na hierarchię. W żadnym flagu nie jest określona, domyślnym jest ASC .
Jeśli funkcja Order jest używana z zbiorem, w którym dwie lub więcej hierarchii są połączone krzyżowo, a flaga DESC jest używana, uporządkowane są tylko członki ostatniej hierarchii w zbiorze. Jest to zmiana względem Analysis Services 2000, gdzie wszystkie hierarchie w zbiorze były uporządkowane.
Examples
Poniższy przykład zwraca z sześcianu Adventure Works liczbę zleceń resellerskich dla wszystkich kwartałów kalendarzowych z hierarchii Kalendarza na wymiarze Dat. Funkcja Porządku przestawia zbiór dla osi WIERSZY. Funkcja Order uporządkowuje zbiór według [Reseller Order Count] hierarchicznego porządku malejącego, określonego przez hierarchię [Calendar] .
SELECT
Measures.[Reseller Order Count] ON COLUMNS,
Order(
[Date].[Calendar].[Calendar Quarter].MEMBERS,
Measures.[Reseller Order Count],
DESC
) ON ROWS
FROM [Adventure Works]
Zwróć uwagę, że w tym przykładzie, gdy flaga DESC zostaje zmieniona na BDESC, hierarchia zostaje przerwana i lista kwartałów kalendarzowych zwracana jest bez względu na hierarchię:
SELECT
Measures.[Reseller Order Count] ON COLUMNS,
Order (
[Date].[Calendar].[Calendar Quarter].MEMBERS,
Measures.[Reseller Order Count],
BDESC
) ON ROWS
FROM [Adventure Works]
Poniższy przykład zwraca miarę sprzedaży resellerów dla pięciu najlepiej sprzedających się podkategorii produktów, niezależnie od hierarchii, na podstawie zysku brutto resellera. Funkcja podzbioru służy do zwracania tylko pierwszych 5 krotek w zbiorze po uporządkowaniu wyniku za pomocą funkcji porządku .
SELECT Subset
(
Order
(
[Product].[Product Categories].[SubCategory].members,
[Measures].[Reseller Gross Profit],
BDESC
), 0, 5
) ON 0
FROM [Adventure Works]
Poniższy przykład wykorzystuje funkcję Rank do szeregowania członków hierarchii Miasta na podstawie miary Reseller Sales Amount, a następnie wyświetla ich w kolejności rankingowej. Używając funkcji Order do pierwszego uporządkowania zbioru członków hierarchii Miasta, sortowanie odbywa się tylko raz, a następnie następuje liniowy skan przed prezentacją w porządku sortowanym.
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]
Poniższy przykład zwraca liczbę iloczynów w zbiorze, które są unikalne, używając funkcji Porządku do uporządkowania niepustych krotek przed użyciem funkcji Filtr. Funkcja CurrentOrdinal służy do porównywania i eliminowania powiązań.
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]
Aby zrozumieć, jak flaga DESC działa z zestawami krotk, najpierw rozważmy wyniki następującego zapytania:
SELECT
{[Measures].[Tax Amount]} ON 0,
ORDER(
[Sales Territory].[Sales Territory].[Group].MEMBERS
,[Measures].[Tax Amount], DESC)
ON 1
FROM [Adventure Works]
Na osi Wiersze widać, że grupy Terytorium Sprzedaży zostały uporządkowane w kolejności malejącej według kwoty podatku, w następujący sposób: Ameryka Północna, Europa, Pacyfik, NA. Teraz zobaczmy, co się stanie, jeśli połączymy zestaw grup Stref Sprzedaży z zestawem Podkategorii Produktów i zastosujemy funkcję Zamówienie w ten sam sposób, w następujący sposób:
SELECT
{[Measures].[Tax Amount]} ON 0,
ORDER(
[Sales Territory].[Sales Territory].[Group].MEMBERS
*
{[Product].[Product Categories].[subCategory].Members}
,[Measures].[Tax Amount], DESC)
ON 1
FROM [Adventure Works]
Podczas gdy zestaw podkategorii produktów został uporządkowany w malejącej, hierarchicznej kolejności, grupy terytoriów sprzedaży nie są teraz posortowane i pojawiają się w kolejności, w jakiej pojawiają się w hierarchii: Europa, Ameryka Północna i Pacyfik. Dzieje się tak, ponieważ sortowana jest tylko ostatnia hierarchia w zbiorze krotek, podkategorie produktowe. Aby odtworzyć zachowanie Analysis Services 2000, użyj serii zagnieżdżonych funkcji Generujących , aby posortować każdy zbiór przed jego krzyżowym połączeniem, na przykład:
SELECT
{[Measures].[Tax Amount]} ON 0,
GENERATE(
ORDER(
[Sales Territory].[Sales Territory].[Group].MEMBERS
,[Measures].[Tax Amount], DESC)
,
ORDER(
[Sales Territory].[Sales Territory].CURRENTMEMBER
*
{[Product].[Product Categories].[subCategory].Members}
,[Measures].[Tax Amount], DESC))
ON 1
FROM [Adventure Works]