Bagikan melalui


Hasilkan (MDX)

Menerapkan set ke setiap anggota set lain, lalu menggabungkan kumpulan yang dihasilkan oleh gabungan. Atau, fungsi ini mengembalikan string yang digabungkan yang dibuat dengan mengevaluasi ekspresi string melalui satu set.

Sintaks

  
Set expression syntax  
Generate( Set_Expression1 ,  Set_Expression2 [ , ALL ]  )  
  
String expression syntax  
Generate( Set_Expression1 ,  String_Expression [ ,Delimiter ]  )  

Argumen

Set_Expression1
Ekspresi Ekspresi Multidminsional (MDX) yang valid yang mengembalikan satu set.

Set_Expression2
Ekspresi Ekspresi Multidminsional (MDX) yang valid yang mengembalikan satu set.

String_Expression
Ekspresi string valid yang biasanya merupakan nama anggota saat ini (CurrentMember.Name) dari setiap tuple dalam set yang ditentukan.

Pembatas
Pemisah yang valid dinyatakan sebagai ekspresi string.

Keterangan

Jika set kedua ditentukan, fungsi Hasilkan mengembalikan set yang dihasilkan dengan menerapkan tuple di set kedua ke setiap tuple dalam set pertama, lalu menggabungkan set yang dihasilkan oleh union. Jika ALL ditentukan, fungsi mempertahankan duplikat dalam set yang dihasilkan.

Jika ekspresi string ditentukan, fungsi Hasilkan mengembalikan string yang dihasilkan dengan mengevaluasi ekspresi string yang ditentukan terhadap setiap tuple dalam set pertama, lalu menggabungkan hasilnya. Secara opsional, string dapat dibatasi, memisahkan setiap hasil dalam string yang digabungkan yang dihasilkan.

Contoh

Set

Dalam contoh berikut, kueri mengembalikan set yang berisi jumlah Pengukuran Penjualan Internet empat kali, karena ada empat anggota dalam set [Date]. [Tahun Kalender]. [Tahun Kalender]. ANGGOTA:

SELECT   
GENERATE( [Date].[Calendar Year].[Calendar Year].MEMBERS  
, {[Measures].[Internet Sales Amount]}, ALL)  
ON 0  
FROM [Adventure Works]  

Menghapus SEMUA mengubah kueri sehingga Jumlah Penjualan Internet dikembalikan sekali saja:

SELECT   
GENERATE( [Date].[Calendar Year].[Calendar Year].MEMBERS  
, {[Measures].[Internet Sales Amount]})  
ON 0  
FROM [Adventure Works]  

Penggunaan Hasilkan yang paling umum adalah mengevaluasi ekspresi set kompleks, seperti TopCount, melalui sekumpulan 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]  

Perhatikan bahwa 10 teratas yang berbeda ditampilkan untuk setiap tahun, dan bahwa penggunaan Generate adalah satu-satunya cara untuk mendapatkan hasil ini. Cukup gabung silang Tahun Kalender dan set 10 Produk teratas akan menampilkan 10 Produk teratas untuk semua waktu, diulang untuk setiap tahun, seperti yang ditunjukkan dalam 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 Buat 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]  

Catatan

Bentuk fungsi Hasilkan ini dapat berguna saat men-debug perhitungan, karena memungkinkan Anda mengembalikan string yang menampilkan nama semua anggota dalam satu set. Ini mungkin lebih mudah dibaca daripada representasi MDX ketat dari set yang dikembalikan fungsi SetToStr (MDX ).

Lihat Juga

Referensi Fungsi MDX (MDX)