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.
Fungsi himpunan mengambil himpunan dari dimensi, hierarki, tingkat, atau dengan menelusuri lokasi absolut dan relatif anggota dalam objek-objek tersebut, membangun himpunan dengan berbagai cara.
Fungsi himpunan, seperti fungsi anggota dan fungsi tuple, sangat penting untuk menavigasi struktur multidimensi yang ditemukan dalam Layanan Analisis. Fungsi himpunan juga penting untuk memperoleh hasil dari kueri Ekspresi Multidimensi (MDX) karena ekspresi himpunan mendefinisikan sumbu dari kueri MDX.
Salah satu fungsi himpunan yang paling umum adalah fungsi Members (Set) (MDX), yang mengambil himpunan yang berisi semua anggota dari dimensi, hierarki, atau tingkat. Berikut adalah contoh penggunaannya dalam sebuah kueri:
SELECT
//Returns all of the members on the Measures dimension
[Measures].MEMBERS
ON Columns,
//Returns all of the members on the Calendar Year level of the Calendar Year Hierarchy
//on the Date dimension
[Date].[Calendar Year].[Calendar Year].MEMBERS
ON Rows
FROM [Adventure Works]
Fungsi lain yang umum digunakan adalah fungsi Crossjoin (MDX). Ia mengembalikan himpunan tuple yang mewakili produk kartesian dari himpunan yang dimasukkan ke dalamnya sebagai parameter. Secara praktis, fungsi ini memungkinkan Anda membuat sumbu 'bersarang' atau 'crosstabbed' dalam kueri:
SELECT
//Returns all of the members on the Measures dimension
[Measures].MEMBERS
ON Columns,
//Returns a set containing every combination of all of the members
//on the Calendar Year level of the Calendar Year Hierarchy
//on the Date dimension and all of the members on the Category level
//of the Category hierarchy on the Product dimension
Crossjoin(
[Date].[Calendar Year].[Calendar Year].MEMBERS,
[Product].[Category].[Category].MEMBERS)
ON Rows
FROM [Adventure Works]
Fungsi Descendants (MDX) mirip dengan fungsi Anak, tetapi lebih kuat. Ia mengembalikan keturunan dari anggota mana pun pada satu atau lebih tingkat dalam hierarki:
SELECT
[Pengukuran]. [Jumlah Penjualan Internet]
Kolom ON,
Mengembalikan himpunan yang berisi semua Tanggal di bawah Tahun Kalender
2004 dalam hierarki Kalender dimensi Tanggal
KETURUNAN(
[Date]. [Kalender]. [Tahun Kalender].&[2004]
, [Tanggal]. [Kalender]. [Tanggal])
ON Rows
DARI [Adventure Works]
Fungsi Order (MDX) memungkinkan Anda mengurutkan isi himpunan dalam urutan naik atau menurun sesuai dengan ekspresi numerik tertentu. Kueri berikut mengembalikan anggota yang sama pada baris seperti kueri sebelumnya, tetapi sekarang mengurutkannya berdasarkan ukuran Jumlah Penjualan Internet:
SELECT
[Measures].[Internet Sales Amount]
ON Columns,
//Returns a set containing all of the Dates beneath Calendar Year
//2004 in the Calendar hierarchy of the Date dimension
//ordered by Internet Sales Amount
ORDER(
DESCENDANTS(
[Date].[Calendar].[Calendar Year].&[2004]
, [Date].[Calendar].[Date])
, [Measures].[Internet Sales Amount], BDESC)
ON Rows
FROM [Adventure Works]
Kueri ini juga menggambarkan bagaimana himpunan yang dikembalikan dari satu fungsi himpunan, Descendants, dapat diteruskan sebagai parameter ke fungsi himpunan lain, Order.
Memfilter himpunan berdasarkan kriteria tertentu sangat berguna saat menulis kueri, dan untuk tujuan ini Anda dapat menggunakan fungsi Filter (MDX), seperti yang ditunjukkan pada contoh berikut:
SELECT
[Measures].[Internet Sales Amount]
ON Columns,
//Returns a set containing all of the Dates beneath Calendar Year
//2004 in the Calendar hierarchy of the Date dimension
//where Internet Sales Amount is greater than $70000
FILTER(
DESCENDANTS(
[Date].[Calendar].[Calendar Year].&[2004]
, [Date].[Calendar].[Date])
, [Measures].[Internet Sales Amount]>70000)
ON Rows
FROM [Adventure Works]
Ada fungsi lain yang lebih canggih yang memungkinkan Anda memfilter sebuah set dengan cara lain. Sebagai contoh, kueri berikut menunjukkan fungsi TopCount (MDX) mengembalikan n item teratas dalam satu set:
SELECT
[Measures].[Internet Sales Amount]
ON Columns,
//Returns a set containing the top 10 Dates beneath Calendar Year
//2004 in the Calendar hierarchy of the Date dimension by Internet Sales Amount
TOPCOUNT(
DESCENDANTS(
[Date].[Calendar].[Calendar Year].&[2004]
, [Date].[Calendar].[Date])
,10, [Measures].[Internet Sales Amount])
ON Rows
FROM [Adventure Works]
Akhirnya, dimungkinkan untuk melakukan sejumlah operasi himpunan logis menggunakan fungsi seperti fungsi Intersect (MDX),Union (MDX), dan Except (MDX). Kueri berikut menunjukkan contoh dua fungsi terakhir:
SELECT
//Returns a set containing the Measures Internet Sales Amount, Internet Tax Amount and
//Internet Total Product Cost
UNION(
{[Measures].[Internet Sales Amount], [Measures].[Internet Tax Amount]}
, {[Measures].[Internet Total Product Cost]}
)
ON Columns,
//Returns a set containing all of the Dates beneath Calendar Year
//2004 in the Calendar hierarchy of the Date dimension
//except the January 1st 2004
EXCEPT(
DESCENDANTS(
[Date].[Calendar].[Calendar Year].&[2004]
, [Date].[Calendar].[Date])
,{[Date].[Calendar].[Date].&[915]})
ON Rows
FROM [Adventure Works]