Soyundan Gelenler (MDX)

Belirli bir seviye veya mesafedeki bir üyenin soyundan gelenler setini döndürür, isteğe bağlı olarak diğer seviyelerdeki soyundan gelenleri dahil eder veya hariç tutar.

Syntax

  
Member expression syntax using a level expression  
Descendants(Member_Expression [ , Level_Expression [ ,Desc_Flag ] ] )  
  
Member expression syntax using a numeric expression  
Descendants(Member_Expression [ , Distance [ ,Desc_Flag ] ] )  
  
Set expression syntax using a level expression  
Descendants(Set_Expression [ , Level_Expression [ ,Desc_Flag ] ] )  
  
Member expression syntax using a numeric expression  
Descendants(Set_Expression [ , Distance [ ,Desc_Flag ] ] )  
  

Arguments

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

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

Level_Expression
Geçerli bir Çok Boyutlu İfadeler (MDX) ifadesi, bir seviye döndürür.

Uzaklık
Belirtilen üyeden uzaklığı belirten geçerli bir sayısal ifade.

Desc_Flag
Olası soy kümelerini ayırt eden bir açıklama bayrağı belirten geçerli bir dizim ifadesi.

Remarks

Bir seviye belirtilmişse, Descendants fonksiyonu belirtilen üyenin veya belirlenen kümenin üyelerinin törenlerini içeren bir küme döndürür; bu küme belirli bir seviyede, Desc_Flag'de belirtilen bir bayrakla isteğe bağlı olarak değiştirilir.

Eğer Distance belirtilmişse, Descendants fonksiyonu belirtilen üyenin veya belirtilen kümenin hiyerarşisinde belirtilen seviye sayısı uzakta olan üyelerini içeren bir küme döndürür; bu küme isteğe bağlı olarak Desc_Flag'de belirtilen bir bayrakla değiştirilir. Genellikle, bu fonksiyonu Mesafe argümanıyla birlikte kullanarak dağınık hiyerarşileri ele alırsınız. Belirtilen mesafe sıfır (0) ise, fonksiyon yalnızca belirtilen üye veya kümeden oluşan bir küme döndürür.

Bir küme ifadesi belirtildiğinde, Descendants fonksiyonu kümenin her üyesi için ayrı ayrı çözülür ve küme tekrar oluşturulur. Başka bir deyişle, Descendants fonksiyonu için kullanılan sözdizimi işlevsel olarak MDX Generate fonksiyonuna eşdeğerdir.

Eğer herhangi bir seviye veya mesafe belirtilmemişse, fonksiyonun kullandığı seviyenin varsayılan değeri, Seviye fonksiyonu (<<Member>>. Seviye) belirtilen üye için (bir üye belirtilmişse) veya belirtilen kümenin her üyesi için Seviye fonksiyonunu çağırarak (bir küme belirtilmişse). Seviye ifadesi, mesafe veya bayrak belirtilmemişse, fonksiyon aşağıdaki sözdizimi kullanılmışmış gibi çalışır:

Descendants  
(  
Member_Expression ,  
Member_Expression.Level ,  
SELF_BEFORE_AFTER  
)  

Bir seviye belirtilmişse ve açıklama bayrağı belirtilmemişse, fonksiyon aşağıdaki sözdizimi kullanılmışmış gibi çalışır.

Descendants  
(  
Member_Expression ,  
Level_Expression,  
SELF  
)  

Açıklama bayrağının değerini değiştirerek, belirtilen seviye veya mesafedeki soy çocukları, belirtilen seviye veya mesafeden önceki veya sonrakı çocukları (yaprak düğümüne kadar) ve yaprak çocuklarını belirtilen seviye veya mesafeye bakılmadan dahil edebilir veya hariç tutabilirsiniz. Aşağıdaki tablo, Desc_Flag argümanında izin verilen bayrakları açıklar.

Flag Description
SELF Yalnızca belirlenen seviyeden veya mesafedeki soyundan gelen üyeleri geri getirir. Fonksiyon, belirtilen seviye belirtilen üyenin seviyesi ise belirtilen üyeyi içerir.
AFTER Belirlenen seviyeye veya mesafeye bağlı tüm seviyelerden soyundan gelen üyeleri geri getirir.
ÖNCE Belirtilen üye ile seviye arasında veya belirlenen mesafede tüm seviyelerden soy üyeleri döndürür. Belirtilen üyeyi içerir, ancak belirtilen seviye veya mesafeden üyeleri kapsamaz.
BEFORE_AND_AFTER Tüm seviyelerden belirlenen üyenin seviyesine bağlı soydan gelen üyeleri geri getirir. Belirtilen üyeyi içerir, ancak belirtilen seviyeden veya mesafedeki üyeleri içermez.
SELF_AND_AFTER Belirlenen seviyeden veya mesafeden gelen soy üyeleri ve belirtilen seviyeye bağlı olan tüm seviyeleri veya mesafede döndürür.
SELF_AND_BEFORE Belirlenen seviyeden veya mesafeden ve belirtilen üye ile seviye arasındaki ya da belirli mesafedeki tüm seviyelerden, belirtilen üye dahil olmak üzere soy üyeleri döndürür.
SELF_BEFORE_AFTER Tüm seviyelerden belirlenen üyenin seviyesine bağlı soyundan gelen üyeleri geri getirir ve belirtilen üyeyi içerir.
YAPRAKLAR Yaprak soyundan gelen üyeleri belirtilen üye ile seviye arasında veya belirlenen mesafede döndürür.

Examples

Aşağıdaki örnek, belirtilen üye (Birleşik Devletler) ve belirtilen üye (Birleşik Devletler) ile belirlenen seviyeden önceki (Şehir) üyeler arasındaki üyeleri geri getirir. Örnek ise belirtilen üyenin kendisini (Birleşik Devletler) ve State-Province seviyesinin üyelerini (Şehir seviyesinden önceki seviye) döndürür. Bu örnek, bu fonksiyon için diğer argümanları kolayca test etmenizi sağlayan yorumlu argümanlar içerir.

SELECT Descendants  
   ([Geography].[Geography].[Country].&[United States]  
      //, [Geography].[Geography].[Country]  
   , [Geography].[Geography].[City]  
      //, [Geography].[Geography].Levels (3)  
      //, SELF   
      //, AFTER  
      , BEFORE  
      // BEFORE_AND_AFTER  
      //, SELF_AND_AFTER  
      //, SELF_AND_BEFORE  
      //,SELF_BEFORE_AFTER  
      //,LEAVES   
   ) ON 0  
FROM [Adventure Works]   

Aşağıdaki örnek, 2003 mali yılında her ayın günlerinde hesaplanan günlük ortalamasını Adventure Works küpünden geri getirmektedirMeasures.[Gross Profit Margin]. Descendants fonksiyonu, hiyerarşinin mevcut üyesinden [Date].[Fiscal] belirlenen bir dizi gün döndürür.

WITH MEMBER Measures.[Avg Gross Profit Margin] AS Avg  
   (  
      Descendants( [Date].[Fiscal].CurrentMember,   
           [Date].[Fiscal].[Date]  
          ),   
        Measures.[Gross Profit Margin]  
   )  
SELECT  
   Measures.[Avg Gross Profit Margin] ON COLUMNS,  
   [Date].[Fiscal].[Month].Members ON ROWS  
FROM [Adventure Works]  
WHERE ([Date].[Fiscal Year].&[2003])  

Aşağıdaki örnek, Avustralya'daki her State-Province için bir seviye ifadesi kullanır ve her eyalet için Avustralya için toplam İnternet Satış Miktarının yüzdesini döndürür. Bu örnek, Atalar fonksiyonu tarafından döndürülen kümeden ilk (ve tek) tuple'ı çıkarmak için Öğe fonksiyonunu kullanır.

WITH MEMBER Measures.x AS   
   [Measures].[Internet Sales Amount] /   
   ( [Measures].[Internet Sales Amount],  
      Ancestors   
         ( [Customer].[Customer Geography].CurrentMember,   
           [Customer].[Customer Geography].[Country]  
         ).Item (0)  
   ), FORMAT_STRING = '0%'  
SELECT {[Measures].[Internet Sales Amount], Measures.x} ON 0,  
{Descendants   
   ( [Customer].[Customer Geography].[Country].&[Australia],   
     [Customer].[Customer Geography].[State-Province], SELF   
   )    
} ON 1  
FROM [Adventure Works]