Generate (MDX)

Bir kümeyi başka bir kümenin her üyesine uygular ve ardından ortaya çıkan kümeleri birleşimle birleştirir. Alternatif olarak, bu fonksiyon, bir dizi ifadesi bir küme üzerinde değerlendirilerek oluşturulan birleştirilmiş bir diziyi döndürür.

Syntax

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

Arguments

Set_Expression1
Bir küme döndüren geçerli bir Çok Boyutlu İfadeler (MDX) ifadesi.

Set_Expression2
Bir küme döndüren geçerli bir Çok Boyutlu İfadeler (MDX) ifadesi.

String_Expression
Genellikle belirtilen kümedeki her tuple'un mevcut üyesinin (CurrentMember.Name) adı olan geçerli bir dizi ifadesi.

Sınırlayıcı
Geçerli bir ayırıcı, bir dizi ifadesi olarak ifade edilir.

Remarks

İkinci bir küme belirtilmişse, Generate fonksiyonu, ikinci kümedeki tuple'ların ilk kümedeki her tuple'a uygulanması ve ardından ortaya çıkan kümelerin birleşmesiyle oluşturulan bir kümeyi döndürür. ALL belirtilmişse, fonksiyon ortaya çıkan kümedeki kopyaları korur.

Bir dizi ifade belirtilmişse, Generate fonksiyonu, belirtilen dize ifadesini ilk kümedeki her bir tuple karşı değerlendirerek ve ardından sonuçları birleştirerek oluşturulan bir diziyi döndürür. İsteğe bağlı olarak, dizi sınırlandırılabilir ve ortaya çıkan birleşik dizedeki her sonucu ayırabilir.

Examples

Ayarla

Aşağıdaki örnekte, sorgu Ölçü İnternet Satışları miktarını dört kez içeren bir küme döndürür, çünkü [Tarih] kümesinde dört üye vardır. [Takvim Yılı]. [Takvim Yılı]. ÜYELER:

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

ALL (HEPSİ) kaldırıldığında, sorgu internet satış miktarının yalnızca bir kez geri dönmesini sağlar:

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

Genere'in en yaygın pratik kullanımı, TopCount gibi karmaşık bir küme ifadesini bir üye kümesi üzerinde değerlendirmektir. Aşağıdaki örnek sorgu, her Takvim Yılı için Satırlarda en iyi 10 Ürünü gösterir:

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]  

Her yıl için farklı bir ilk 10 gösterildiğini ve bu sonucu elde etmenin tek yolu Generate olduğunu unutmayın. Sadece Takvim Yılları ile ilk 10 Ürün setini çapraz birleştirerek, aşağıdaki örnekte gösterildiği gibi, her yıl için tekrarlanan tüm zamanların en iyi 10 Ürünü gösterir:

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

Aşağıdaki örnek, bir diziyi döndürmek için Generate kullanımını göstermektedir:

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

Generate fonksiyonunun bu formu, hata ayıklama yaparken faydalı olabilir; çünkü bir kümedeki tüm üyelerin isimlerini gösteren bir diziyi döndürebilmenize olanak tanır. Bu, SetToStr (MDX) fonksiyonunun döndürdüğü bir kümenin katı MDX temsili olmaktan daha kolay okunabilir.