DrilldownLevel (MDX)

Bir setin üyelerini, sette temsil edilen en düşük seviyenin bir seviyesinin altına kadar devirir.

Hangi seviyeye inileceğini belirtmek isteğe bağlıdır, ancak seviyeyi ayarlarsanız ya seviye ifadesi ya da indeks seviyesi kullanabilirsiniz. Bu argümanlar birbirini dışlar. Son olarak, sorguda hesaplanan üyeler varsa, onları satır kümesine dahil etmek için bir argüman belirtebilirsiniz.

Syntax

DrilldownLevel(Set_Expression [,[Level_Expression] ,[Index]] [,INCLUDE_CALC_MEMBERS])  

Arguments

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

Level_Expression
(İsteğe bağlı). Hangi seviyeye inileceğini açıkça belirten bir MDX ifadesi. Seviye ifadesi belirtirseniz, aşağıdaki indeks argümanını atlayın.

Dizin
(İsteğe bağlı). Küme içinde derinlemesine inilecek hiyerarşi sayısını belirleyen geçerli bir sayısal ifade. İndeks seviyesini Level_Expression yerine kullanarak derinlemesine inileceğinizi açıkça belirleyebilirsiniz.

Include_Calc_Members
(İsteğe bağlı). Hesaplanan üyelerin varsa, drill down seviyesinde dahil edilip edilmeyeceğini gösteren bir bayrak.

Remarks

DrilldownLevel fonksiyonu, belirtilen kümedeki üyelere göre hiyerarşik bir grup alt üye döndürür. Sıralama, belirtilen kümedeki orijinal üyeler arasında korunur, ancak fonksiyonun sonuç kümesine dahil edilen tüm alt üyeler hemen ana üyelerinin altına dahil edilir.

Çok katmanlı hiyerarşik bir veri yapısı verildiğinde, derinlemesine inileceğiniz bir seviyeyi açıkça seçebilirsiniz. Seviyeyi tanımlamanın iki birbirini dışlayan yolu vardır. İlk yaklaşım, level_expression argümanını, seviyeyi döndüren bir MDX ifadesi kullanarak ayarlamaktır. Alternatif bir yaklaşım ise, seviyeyi sayıya göre belirten sayısal bir ifade kullanarak indeks argümanını belirtmektir.

Bir seviye ifade belirtildiğinde, fonksiyon yalnızca belirtilen seviyede olan üyelerin çocuklarını getirerek hiyerarşik bir sıralamada bir küme oluşturur. Bir seviye ifade belirtilirse ve o seviyede üye yoksa, seviye ifadesi göz ardı edilir.

Bir indeks değeri belirtilmişse, fonksiyon yalnızca belirtilen kümede referans verilen hiyerarşinin bir sonraki en düşük seviyesinde olan üyelerin çocuklarını alarak hiyerarşik bir sıralamada bir küme oluşturur; bu tür bir indeks verilir.

Eğer ne bir seviye ifadesi ne de bir indeks değeri belirtilmemişse, fonksiyon yalnızca belirtilen kümede referans verilen birinci boyutun en düşük seviyesinde olan üyelerin çocuklarını getirerek hiyerarşik bir sıralamada bir küme oluşturur.

MdpropMdxDrillFunctions adlı XMLA özelliğini sorgulamak, sunucunun sondaj fonksiyonlarına sağladığı destek seviyesini doğrulamanızı sağlar; Detaylar için Desteklenen XMLA Özellikleri (XMLA) bölümüne bakınız.

Examples

Aşağıdaki örnekleri SSMS'deki MDX sorgu penceresinde Adventure Works küpü kullanarak deneyebilirsiniz.

Örnek 1 - minimum sözdizimini gösterir

İlk örnek, DrilldownLevel için minimum sözdizimini gösteriyor. Tek gerekli argüman bir küme ifadesidir. Bu sorguyu çalıştırdığınızda, ana [Tüm Kategoriler] ve sonraki seviyedeki üyeleri aşağıya alıyorsunuz: [Aksesuarlar], [Bisikletler] vb. Bu örnek basit olsa da, DrilldownLevel fonksiyonunun temel amacını, yani aşağıdaki bir sonraki seviyeye sondaj yapmayı gösteriyor.

SELECT DRILLDOWNLEVEL({[Product].[Product Categories]} * {[Sales Territory].[Sales Territory]}}) ON COLUMNS  
FROM [Adventure Works]  

Örnek 2 - açık bir endeks seviyesi kullanarak alternatif sözdizimi

Bu örnek, indeks seviyesinin sayısal bir ifade aracılığıyla belirtildiği alternatif sözdizimi gösterilir. Bu durumda, indeks seviyesi 0'dır. Sıfır tabanlı bir endeks için bu en düşük seviyedir.

SELECT  
DRILLDOWNLEVEL({[Product].[Product Categories]} * {[Sales Territory].[Sales Territory]},,0) ON COLUMNS  
FROM [Adventure Works]  

Sonuç kümesinin önceki sorgu ile aynısına dikkat edin. Genel kural olarak, endeks seviyesini ayarlamak gereksizdir, yoksa drill'in belirli bir seviyeden başlamasını istemiyorsanız. Önceki sorguyu tekrar çalıştırın, indeks değerini 1, sonra 2 olarak ayarlayın. Endeks değeri 1'e ayarlandığında, derinleme hiyerarşideki ikinci seviyeden başlıyor. Endeks değeri 2'ye ayarlandığında, bu örnekte en yüksek seviye olan üçüncü seviyeden derinleşme başlar. Sayısal ifade ne kadar yüksekse, indeks seviyesi o kadar yüksektir.

Örnek 3 - bir seviye ifadesi gösterir

Bir sonraki örnek, seviye ifadesinin nasıl kullanılacağını gösterir. Hiyerarşik bir yapıyı temsil eden bir küme verildiğinde, seviye ifadesi kullanmak hiyerarşide bir seviye seçip drill'e başlamanızı sağlar.

Bu örnekte, aşağıya doğru ilerleme seviyesi, DrilldownLevel fonksiyonunun ikinci argümanı olarak [Şehir] ile başlar. Bu sorguyu yaptığınızda, derinleme Washington ve Oregon eyaletleri için [Şehir] düzeyinden başlar. DrilldownLevel fonksiyonuna göre, sonuç seti aynı zamanda bir sonraki seviyedeki [Posta kodları]ndaki üyeleri de içerir.

SELECT [Measures].[Internet Sales Amount] ON COLUMNS,  
   NON EMPTY (  
   DRILLDOWNLEVEL(  
       {[Customer].[Customer Geography].[Country].[United States],  
           DESCENDANTS(  
             { [Customer].[Customer Geography].[State-Province].[Washington],    
               [Customer].[Customer Geography].[State-Province].[Oregon]},   
               [Customer].[Customer Geography].[City]) } ,  
[Customer].[Customer Geography].[City] ) )  ON ROWS  
FROM [Adventure Works]  

Örnek 4 - hesaplanan üyeler dahil

Son örnek, include_calculated_members bayrağı eklendiğinde sonuç setinin en altında görünen hesaplanmış bir üye gösterir. Bayrağın dördüncü parametre olarak belirtildiğine dikkat edin.

Bu örnek, hesaplanan üyenin hesaplanmamış üyelerle aynı seviyede olması nedeniyle işe yarar. Hesaplanan üye [West Coast], [Birleşik Devletler]'ten ve [Birleşik Devletler]'in bir seviye altındaki tüm üyelerden oluşur.

WITH MEMBER   
[Customer].[Customer Geography].[Country].&[United States].[West Coast] AS  
[Customer].[Customer Geography].[State-Province].&[OR]&[US] +  
[Customer].[Customer Geography].[State-Province].&[WA]&[US] +  
[Customer].[Customer Geography].[State-Province].&[CA]&[US]  
SELECT [Measures].[Internet Order Count] ON 0,  
DRILLDOWNLEVEL([Customer].[Customer Geography].[Country].&[United States],,,INCLUDE_CALC_MEMBERS) on 1  
FROM [Adventure Works]  

Sadece bayrağı kaldırıp sorguyu tekrar çalıştırırsanız, hesaplanan üye hariç aynı sonuçları alırsınız, [Batı Kıyısı].