2010-01-14 12 views
12

Hesaplanan Üye:MDX aşağıdaki hesaplanan üyesi ile bir MDX sorgusu var Crossjoin soru

with member [Measures].[BBOX] as 
Count(
    Filter(
     CrossJoin([Dim Response].[Response ID].Children, [Dim Question].[Question Text].Children), 
     [Measures].[Question Bottom Box] > 0 
    ) 
) 

fikri bir boyutun iki üyeden kombinasyonlarının sayısını istememizdir. (MDX kelime bilgim biraz kapalı ise beni affet). Ayrıca bazı kriterlere dayanmaktadır. Sorgunun

dinlenme şuna benzer:

select 
{({[Measures].[TBOX], [Measures].[BBOX]}, 
[Dim Product].[Category Name].&[Office])} on columns, 
{[Dim Question].[Question Text].Members} on rows 
from H1_FY10_Revised 
where ({[Dim Question].[Category Name].&[Partner]}, 
{[Dim Subsidiary].[Subsidiary Alias Name].&[Germany]}) 

Sorum edilir: Ana sorgusu (maddesi) meydana gelir verilerinin dilimleme hesaplanan üyesi olması anlamına geliyor? Hesaplanan üyeden ve ana sorgudaki eksenlerden gelen veriler arasında herhangi bir örtülü birleştirme var mı?

Veya ifade etmenin başka bir yolu: hesaplanan üye işleminde çapraz, ana sorgu bağlamında yürütülür?

+2

Şimdi aptal hissediyorum. Problemi bulduğuma inanıyorum. Sorgu içeriğinin türüne dahil etme şekli .Member veya .Children yerine .CurrentMember kullanılmasıdır. Bu şekilde, uygun üye sorgu bağlamında alıyorum. Ah MDX ... – Ryan

+0

Evet, var. – jvilalta

+2

Bunu aşağıdaki yanıt olarak göndermelisiniz. – Sampson

cevap

2

CrossJoin'un değerlendirmesi, içeriğe bağlı değildir, ancak Filtre işlevi yapar.

hesaplanan üyeler sabit bir değere sahip olabilir için hesaplanan üyesinin bu sorgu bağlamında değerlendirilmiştir, çünkü:

  • [Dim yanıt] [yanıt İD] .Children [Dim Tepki] eşdeğerdir.. [Yanıt Kimliği]. DefaultMember .Çocuklar (bkz. MSDN).
  • [Dim Soru]. [Soru Metni] .Çocuklar [Dim Soru] 'ya eşdeğerdir. [Soru Metni]. DefaultMember .Children

Yani CrossJoin sonucu dilimleyici bağlı değildir. Sadece [Measures].[Question Bottom Box] değeri, dilimleyiciye bağlı olacaktır.