Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Mengatur anggota dari himpunan tertentu, secara opsional mempertahankan atau memecah hierarki.
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
Ekspresi Multidimensional Expressions (MDX) valid yang mengembalikan set.
Numeric_Expression
Ekspresi numerik yang valid yang biasanya merupakan ekspresi Multidimensional Expressions (MDX) dari koordinat sel yang mengembalikan angka.
String_Expression
Ekspresi string yang valid yang biasanya merupakan ekspresi koordinat sel Multidimensional Expressions (MDX) yang valid dan mengembalikan angka yang dinyatakan sebagai string.
Remarks
Fungsi Order dapat bersifat hierarkis (sebagaimana ditentukan dengan menggunakan flag ASC atau DESC ) atau non-hierarkis (seperti yang ditentukan dengan menggunakan flag BASC atau BDESC ; B berarti "break hierarchy"). Jika ASC atau DESC ditentukan, fungsi Order pertama-tama mengatur anggota sesuai posisi mereka dalam hierarki, lalu mengurutkan setiap tingkat. Jika BASC atau BDESC ditentukan, fungsi Order mengatur anggota dalam himpunan tanpa memperhatikan hierarki. Tidak ada flag yang ditentukan, ASC adalah default.
Jika fungsi Order digunakan dengan himpunan di mana dua atau lebih hierarki disilangkan, dan bendera DESC digunakan, hanya anggota hierarki terakhir dalam himpunan yang diurutkan. Ini adalah perubahan dari Analysis Services 2000 di mana semua hierarki dalam set tersebut diurutkan.
Examples
Contoh berikut mengembalikan, dari kubus Adventure Works , jumlah pesanan reseller untuk semua Kuartal Kalender dari hierarki Kalender pada dimensi Tanggal. Fungsi Order mengatur ulang himpunan untuk sumbu ROWS. Fungsi Order mengurutkan himpunan dengan [Reseller Order Count] dalam urutan hierarkis menurun yang ditentukan oleh [Calendar] hierarki.
SELECT
Measures.[Reseller Order Count] ON COLUMNS,
Order(
[Date].[Calendar].[Calendar Quarter].MEMBERS,
Measures.[Reseller Order Count],
DESC
) ON ROWS
FROM [Adventure Works]
Perhatikan bagaimana dalam contoh ini, ketika bendera DESC diubah menjadi BDESC, hierarki dipecah dan daftar Kuartal Kalender dikembalikan tanpa memperhatikan hierarki:
SELECT
Measures.[Reseller Order Count] ON COLUMNS,
Order (
[Date].[Calendar].[Calendar Quarter].MEMBERS,
Measures.[Reseller Order Count],
BDESC
) ON ROWS
FROM [Adventure Works]
Contoh berikut mengembalikan Ukuran Penjualan Reseller untuk lima subkategori produk terlaris, tanpa memandang hierarki, berdasarkan Laba Bruto Reseller. Fungsi Subset digunakan untuk mengembalikan hanya 5 tuple pertama dalam himpunan setelah hasilnya diurutkan menggunakan fungsi Order .
SELECT Subset
(
Order
(
[Product].[Product Categories].[SubCategory].members,
[Measures].[Reseller Gross Profit],
BDESC
), 0, 5
) ON 0
FROM [Adventure Works]
Contoh berikut menggunakan fungsi Rank untuk memberi peringkat anggota hierarki Kota, berdasarkan ukuran Jumlah Penjualan Reseller, lalu menampilkan mereka dalam urutan berperingkat. Dengan menggunakan fungsi Order untuk terlebih dahulu mengurutkan kumpulan anggota hierarki Kota, pengurutan dilakukan hanya sekali dan kemudian diikuti oleh pemindaian linier sebelum disajikan dalam urutan yang diurutkan.
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]
Contoh berikut mengembalikan jumlah produk dalam himpunan yang unik, menggunakan fungsi Order untuk mengurutkan tuple yang tidak kosong sebelum menggunakan fungsi Filter . Fungsi CurrentOrdinal digunakan untuk membandingkan dan menghilangkan ikatan.
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]
Untuk memahami bagaimana bendera DESC bekerja dengan himpunan tuple, pertama-tama pertimbangkan hasil dari kueri berikut:
SELECT
{[Measures].[Tax Amount]} ON 0,
ORDER(
[Sales Territory].[Sales Territory].[Group].MEMBERS
,[Measures].[Tax Amount], DESC)
ON 1
FROM [Adventure Works]
Pada sumbu Baris Anda dapat melihat bahwa Grup Wilayah Penjualan telah diurutkan secara menurun berdasarkan Jumlah Pajak, sebagai berikut: Amerika Utara, Eropa, Pasifik, NA. Sekarang lihat apa yang terjadi jika kita menggabungkan set Sales Territory Groups dengan set Subkategori Produk dan menerapkan fungsi Order dengan cara yang sama, sebagai berikut:
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]
Sementara kumpulan Subkategori Produk diurutkan secara menurun dan hierarkis, Grup Wilayah Penjualan kini tidak diurutkan dan muncul sesuai urutan mereka pada hierarki: Eropa, NA, Amerika Utara, dan Pasifik. Ini karena hanya hierarki terakhir dalam himpunan tuple, Subkategori Produk, yang diurutkan. Untuk mereproduksi perilaku Analysis Services 2000, gunakan serangkaian fungsi Generate bersarang untuk mengurutkan setiap set sebelum dicrossjoin, misalnya:
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]