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.
Menerapkan himpunan pada setiap anggota himpunan lain, lalu menggabungkan himpunan hasil melalui union. Sebagai alternatif, fungsi ini mengembalikan string yang tergabung yang dibuat dengan mengevaluasi ekspresi string di atas sebuah himpunan.
Syntax
Set expression syntax
Generate( Set_Expression1 , Set_Expression2 [ , ALL ] )
String expression syntax
Generate( Set_Expression1 , String_Expression [ ,Delimiter ] )
Arguments
Set_Expression1
Ekspresi Multidimensional Expressions (MDX) valid yang mengembalikan set.
Set_Expression2
Ekspresi Multidimensional Expressions (MDX) valid yang mengembalikan set.
String_Expression
Ekspresi string yang valid yang biasanya merupakan nama anggota saat ini (CurrentMember.Name) dari setiap tuple dalam himpunan yang ditentukan.
Pemisah
Pembatas valid yang dinyatakan sebagai ekspresi string.
Remarks
Jika himpunan kedua ditentukan, fungsi Generate mengembalikan himpunan yang dihasilkan dengan menerapkan tuple dalam himpunan kedua ke setiap tuple dalam himpunan pertama, lalu menggabungkan himpunan hasil tersebut dengan penggabungan. Jika ALL ditentukan, fungsi akan mempertahankan duplikat dalam set yang dihasilkan.
Jika sebuah ekspresi string ditentukan, fungsi Generate mengembalikan string yang dihasilkan dengan mengevaluasi ekspresi string yang ditentukan terhadap setiap tuple dalam set pertama, lalu menggabungkan hasilnya. Opsional, string dapat dipisahkan, memisahkan setiap hasil dalam string yang digabungkan.
Examples
Menetapkan
Dalam contoh berikut, kueri mengembalikan himpunan yang berisi jumlah Ukur Penjualan Internet sebanyak empat kali, karena terdapat empat anggota dalam himpunan [Tanggal]. [Tahun Kalender]. [Tahun Kalender]. ANGGOTA:
SELECT
GENERATE( [Date].[Calendar Year].[Calendar Year].MEMBERS
, {[Measures].[Internet Sales Amount]}, ALL)
ON 0
FROM [Adventure Works]
Menghapus ALL mengubah kueri sehingga Jumlah Penjualan Internet hanya dikembalikan sekali:
SELECT
GENERATE( [Date].[Calendar Year].[Calendar Year].MEMBERS
, {[Measures].[Internet Sales Amount]})
ON 0
FROM [Adventure Works]
Penggunaan praktis paling umum dari Generate adalah untuk mengevaluasi ekspresi himpunan kompleks, seperti TopCount, pada satu himpunan anggota. Contoh kueri berikut menampilkan 10 Produk teratas untuk setiap Tahun Kalender pada Baris:
SELECT
{[Measures].[Internet Sales Amount]}
ON 0,
GENERATE(
[Date].[Calendar Year].[Calendar Year].MEMBERS
, TOPCOUNT(
[Date].[Calendar Year].CURRENTMEMBER
*
[Product].[Product].[Product].MEMBERS
,10, [Measures].[Internet Sales Amount]))
ON 1
FROM [Adventure Works]
Perlu dicatat bahwa 10 besar yang berbeda ditampilkan untuk setiap tahun, dan penggunaan Generate adalah satu-satunya cara untuk mendapatkan hasil ini. Cukup silang Tahun Kalender dan set 10 Produk teratas akan menampilkan 10 Produk teratas sepanjang masa, diulang setiap tahun, seperti yang ditunjukkan pada contoh berikut:
SELECT
{[Measures].[Internet Sales Amount]}
ON 0,
[Date].[Calendar Year].[Calendar Year].MEMBERS
*
TOPCOUNT(
[Product].[Product].[Product].MEMBERS
,10, [Measures].[Internet Sales Amount])
ON 1
FROM [Adventure Works]
string
Contoh berikut menunjukkan penggunaan Generate untuk mengembalikan string:
WITH
MEMBER MEASURES.GENERATESTRINGDEMO AS
GENERATE(
[Date].[Calendar Year].[Calendar Year].MEMBERS,
[Date].[Calendar Year].CURRENTMEMBER.NAME)
MEMBER MEASURES.GENERATEDELIMITEDSTRINGDEMO AS
GENERATE(
[Date].[Calendar Year].[Calendar Year].MEMBERS,
[Date].[Calendar Year].CURRENTMEMBER.NAME, " AND ")
SELECT
{MEASURES.GENERATESTRINGDEMO, MEASURES.GENERATEDELIMITEDSTRINGDEMO}
ON 0
FROM [Adventure Works]
Note
Bentuk fungsi Generate ini dapat berguna saat melakukan debugging perhitungan, karena memungkinkan Anda mengembalikan string yang menampilkan nama semua anggota dalam satu set. Ini mungkin lebih mudah dibaca dibandingkan representasi MDX ketat dari sebuah himpunan yang dikembalikan oleh fungsi SetToStr (MDX).