Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Arrangerar medlemmar i en specificerad mängd, valfritt bevarande eller brytande av hierarkin.
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
Set_Expression
Ett giltigt Multidimensional Expressions (MDX)-uttryck som returnerar en mängd.
Numeric_Expression
Ett giltigt numeriskt uttryck som vanligtvis är ett Multidimensional Expressions (MDX)-uttryck av cellkoordinater som returnerar ett tal.
String_Expression
Ett giltigt stränguttryck som vanligtvis är ett giltigt Multidimensional Expressions (MDX)-uttryck av cellkoordinater som returnerar ett tal uttryckt som en sträng.
Remarks
Order-funktionen kan antingen vara hierarkisk (enligt användning av ASC- eller DESC-flaggan) eller icke-hierarkisk (enligt användning av BASC- eller BDESC-flaggan; B står för "break hierarchy"). Om ASC eller DESC specificeras, ordnar Order-funktionen först medlemmarna efter deras position i hierarkin och ordnar sedan varje nivå. Om BASC eller BDESC specificeras, arrangerar Order-funktionen medlemmar i mängden utan hänsyn till hierarkin. Om ingen flagga specificeras är ASC standard.
Om Order-funktionen används med en mängd där två eller fler hierarkier är korssammanfogade, och DESC-flaggan används, är endast medlemmarna i den sista hierarkin i mängden ordnade. Detta är en förändring från Analysis Services 2000 där alla hierarkier i mängden var ordnade.
Examples
Följande exempel returnerar, från Adventure Works-kuben , antalet återförsäljarorder för alla Kalenderkvartal från Kalenderhierarkin på Datumdimensionen. Order-funktionen omordnar mängden för ROWS-axeln.
Order-funktionen ordnar mängden i [Reseller Order Count] fallande hierarkisk ordning enligt hierarkisk ordning [Calendar] enligt hierarkin.
SELECT
Measures.[Reseller Order Count] ON COLUMNS,
Order(
[Date].[Calendar].[Calendar Quarter].MEMBERS,
Measures.[Reseller Order Count],
DESC
) ON ROWS
FROM [Adventure Works]
Observera hur i detta exempel, när DESC-flaggan ändras till BDESC, bryts hierarkin och listan med kalenderkvartal returneras utan hänsyn till hierarkin:
SELECT
Measures.[Reseller Order Count] ON COLUMNS,
Order (
[Date].[Calendar].[Calendar Quarter].MEMBERS,
Measures.[Reseller Order Count],
BDESC
) ON ROWS
FROM [Adventure Works]
Följande exempel returnerar Återförsäljarförsäljningsmåttet för de fem mest säljande underkategorierna av produkter, oavsett hierarki, baserat på Återförsäljarens bruttovinst. Delmängdsfunktionen används för att returnera endast de första 5 tuplerna i mängden efter att resultatet ordnats med ordningsfunktionen.
SELECT Subset
(
Order
(
[Product].[Product Categories].[SubCategory].members,
[Measures].[Reseller Gross Profit],
BDESC
), 0, 5
) ON 0
FROM [Adventure Works]
Följande exempel använder funktionen Rank för att rangordna medlemmarna i Citys hierarki baserat på Reseller Sales Amount-måttet, och visar dem sedan i rangordnad ordning. Genom att använda Order-funktionen för att först ordna mängden medlemmar i Stadens hierarki görs sorteringen endast en gång och följs sedan av en linjär skanning innan den presenteras i sorterad ordning.
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]
Följande exempel returnerar antalet produkter i mängden som är unika, och använder Order-funktionen för att ordna de icke-tomma tuplerna innan Filter-funktionen används. Funktionen CurrentOrdinal används för att jämföra och eliminera oavgjorta.
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]
För att förstå hur DESC-flaggan fungerar med mängder av tupler, överväg först resultaten av följande fråga:
SELECT
{[Measures].[Tax Amount]} ON 0,
ORDER(
[Sales Territory].[Sales Territory].[Group].MEMBERS
,[Measures].[Tax Amount], DESC)
ON 1
FROM [Adventure Works]
På rad-axeln kan du se att Sales Territory Groups är ordnade i fallande ordning efter skattebelopp, enligt följande: Nordamerika, Europa, Stilla havet, Nordamerika. Nu ser vi vad som händer om vi korsjoinar mängden Sales Territory Groups med mängden Produktunderkategorier och applicerar Order-funktionen på samma sätt, enligt följande:
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]
Medan mängden produktunderkategorier har ordnats i fallande, hierarkisk ordning, är Sales Territory Groups nu inte sorterade utan visas i den ordning de förekommer i hierarkin: Europa, Nordamerika, Nordamerika och Stilla havet. Detta beror på att endast den sista hierarkin i mängden tupler, Produktunderkategorier, är sorterad. För att återskapa beteendet hos Analysis Services 2000, använd en serie nästlade Generera-funktioner för att sortera varje mängd innan den korskopplas, till exempel:
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]