Generate (MDX)

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).