Aracılığıyla paylaş


SUBSELECT'ler ve Subcubes hesaplanan üyeler

Önceki sürümlerde, hesaplanan üyeler, SUBSELECT'ler veya subcubes izin verildi.Ancak, sql Server 2008 ile başlayarak, izin ve bağlantı özellik tarafından etkin.Buna ek olarak, SUBSELECT'ler ve subcubes, hesaplanan üyeler için yeni davranış, sql Server 2008 R2'de kullanılmaya başlandı.

SUBSELECT'ler ve Subcubes hesaplanan üyeler

The SubQueries connection string property in ConnectionString or the DBPROPMSMDSUBQUERIES property in Desteklenen xmla özellikleri (xmla) defines the behavior or allowance of calculated members or calculated sets on subselects or subcubes.Bu belge kapsamında alt seçim subselects başvurduğu ve aksi belirtilmedikçe subcubes.

Alt sorgular özellik aşağıdaki değerlere izin verir.

Değer

Açıklama

0

Hesaplanan üyeler SUBSELECT'ler veya subcubes izin verilmez.

Hesaplanan üye başvuru yapılırsa alt seçim veya subcube değerlendirirken, bir hata oluşturulur.

1

Hesaplanan üyeleri içinde SUBSELECT'ler izin verilen veya subcubes ancak ascendant üye yok etmiş ayırabilir kullanılmaya başlanmıştır.

2

Hesaplanan üyeleri içinde SUBSELECT'ler izin verilen veya subcubes ve ascendant üyeleri döndürmeyi ayırabilir kullanılmaya başlanmıştır.Ayrıca, karışık taneciklik hesaplanan üyeler seçimde izin verilir.

1 Veya 2 değerlerini alt sorgular özellik kullanılarak hesaplanan üyeler döndürmeyi ayırabilir, SUBSELECT'ler filtre uygulamak için kullanılacak sağlar.

Örnek kavramı açıklamak yardımcı olur; Hesaplanan üye önce oluşturulmalıdır ve subselect sorgu verilen yukarıdaki sözü edilen davranış gösterir.

Aşağıdaki örnek [İstanbul Metro] [Coğrafya] bir şehir ekleyen bir hesaplanan üye oluşturur.Washington state altında [Coğrafya] hiyerarşi.

Connection örneği çalıştırmak için dize aynı oturumda özellik değeri 1 ve tüm mdx deyimleri çalıştırmak alt sorgular içermesi gerekir.

Öncelikle aşağıdaki mdx sorun ifade:

//Remember to set Subqueries=1 in the connection string prior
//to issue these commands
//--> AS2008 behavior
CREATE MEMBER [Adventure Works].[Geography].[Geography].[State-Province].&[WA]&[US].[Seattle Metro Agg] 
   AS  AGGREGATE( 
                 { 
                   [Geography].[Geography].[City].&[Bellevue]&[WA]
                 , [Geography].[Geography].[City].&[Issaquah]&[WA]
                 , [Geography].[Geography].[City].&[Redmond]&[WA]
                 , [Geography].[Geography].[City].&[Seattle]&[WA]
                 }
                )  

Sonra hesaplanan üyeler içinde SUBSELECT'ler izin görmek için aşağıdaki mdx sorgusu sorunu.

Select [Date].[Calendar Year].members on 0,
       [Geography].[Geography].allmembers on 1
from (Select {[Geography].[Geography].[State-Province].&[WA]&[US].[Seattle Metro Agg]} on 0 from [Adventure Works])
Where [Measures].[Reseller Sales Amount]

Alınan sonuçlar şu şekildedir:

 

Tüm Dönemler

CY 2001

CY 2002

CY 2003

CY 2004

İstanbul Metro Agg

$2,383,545.69

$291,248.93

$763,557.02

$915,832.36

$412,907.37

[İstanbul Metro], ascendants dönen ayırabilir mevcut önce Dediğim gibi alt sorgular bu yüzden [Coğrafya] = 1.[Coğrafya] .allmembers yalnızca hesaplanan üye içerir.

Örnek alt sorgular kullanarak çalıştırırsanız, bağlantı 2 = dize, alınan sonuçlar şunlardır:

 

Tüm Dönemler

CY 2001

CY 2002

CY 2003

CY 2004

Tüm Geographies

(null)

(null)

(null)

(null)

(null)

ABD

(null)

(null)

(null)

(null)

(null)

Washington

(null)

(null)

(null)

(null)

(null)

İstanbul Metro Agg

$2,383,545.69

$291,248.93

$763,557.02

$915,832.36

$412,907.37

Önce Dediğim gibi ne zaman kullanarak SubQueries = 2, döndürülen ayırabilir [İstanbul Metro], ascendants bulunmaktadır, ancak normal üye yok toplamalardan için sağlamak olduğundan, bu üyeler için hiçbir değer var.Bu nedenle, bu örnekte hesaplanan üye ascendant tüm üyeleri için null değerleri sağlanmıştır.

Anımsanması gereken yukarıdaki davranışı anlamak için olgu gibi normal üye görmek hesaplanan üyeler, ebeveynlerin toplamalardan için katkıda değil olduğunu Hesaplanan üyeler ve adlandırılmış kümeleri; açıklamak için toplanan değerleri elde edilen ayırabilir, katkıda bulunmak için normal hiçbir üyesi olduğundan tek başına hesaplanan üyeler tarafından filtre için boş ascendants çıkarak olduğunu gösterir.Normal üyeler filtre ifade eklerseniz, toplanan değerleri bu normal üyelerinden gelir.Hesaplanan üye göründüğü aynı eksen İstanbul, Marmara ve Şehir Spokane, Washington içinde şehirler eklediyseniz yukarıdaki örnekle devam etmeden; sonraki mdx içinde gösterildiği gibi ifade:

Select [Date].[Calendar Year].members on 0,
       [Geography].[Geography].allmembers on 1
from (Select {
               [Seattle Metro Agg]
             , [Geography].[Geography].[City].&[Portland]&[OR]
             , [Geography].[Geography].[City].&[Spokane]&[WA]
             } on 0 from [Adventure Works]
     )
Where [Measures].[Reseller Sales Amount]

Aşağıdaki sonuçlar elde edilir.

 

Tüm Dönemler

CY 2001

CY 2002

CY 2003

CY 2004

Tüm Geographies

$235,171.62

$419.46

$4,996.25

$131,788.82

$97,967.09

ABD

$235,171.62

$419.46

$4,996.25

$131,788.82

$97,967.09

Marmara

$30,968.25

$419.46

$4,996.25

$17,442.97

$8,109.56

Portland

$30,968.25

$419.46

$4,996.25

$17,442.97

$8,109.56

97205

$30,968.25

$419.46

$4,996.25

$17,442.97

$8,109.56

Washington

$204,203.37

(null)

(null)

$114,345.85

$89,857.52

Spokane

$204,203.37

(null)

(null)

$114,345.85

$89,857.52

99202

$204,203.37

(null)

(null)

$114,345.85

$89,857.52

İstanbul Metro Agg

$2,383,545.69

$291,248.93

$763,557.02

$915,832.36

$412,907.37

Toplanan değerler [için tüm Geographies], yukarıdaki sonuçlar [ABD] [Marmara] ve [altlarý toplama alanından gelen Washington&[Portland]&[or] ve &[Spokane]&[wa].Hiçbir şey Hesaplanan üye gelir.

Açıklamalar

Yalnızca genel veya oturum hesaplanan üyeler alt seçim içinde izin verilen veya subcube ifade.Sorgu mdx ifadesinde hesaplanan üyeler bir hata yükseltmek sahip olduğunda alt seçim veya subcube ifade değerlendirildi.