2011-05-26 86 views
1

我有一個像MDX查詢「與成員」,並和問題

WITH MEMBER [measures].[Count] AS 
    SUM(([Location].[Hierarchy].[Zone].[1].Children),[Measures].[Length]) 
    SELECT {[measures].[Count]} ON 0, 
    {[Location].[Hierarchy].[Zone].&[1].Children} on 1 
    FROM [NTAP] 

我是一個真正的初學者與MDX但是從我的理解查詢這應該讓我與所有區域1的列表:兒女和所有這些兒童總和的總結。問題是我得到了一份兒童名單和所有1區長度的總和?

我得到這個:

1 103026769420 
2 103026769420 
3 103026769420 
4 103026769420 

但我希望得到的是這樣的

1 84984958 
2 9494949 
3 934883 
4 9458948588 

位置是一個層次,如:

區兒童

1 
    1 
    2 
    3 
2 
    1 
    2 
    3 

編輯:應該可能會說,我使用與成員的原因是measure.length將與最終版本中的Iif一起使用。但是,我甚至不能得到這個工作:(

EDIT2:固定的拼寫

回答

1

你得到1區的所有兒童和1區的每個孩子

你可以把它改寫爲:

WITH MEMBER [Measures].[Count] AS 
    SUM([Location].[Hierarchy].CurrentMember.Children, [Measures].[Length]) 
SELECT {[Measures].[Count]} ON 0, 
    {[Location].[Hierarchy].[Zone].&[1].Children} on 1 
FROM [NTAP] 

順便說一句,[1] <> & [1]沒有&您指定的名稱,並用 - 。關鍵。如果你的情況,關鍵=名字你有什麼可擔心的

+0

這沒有工作,我的一切這一次 1(空) 2(空) 3(空) 4(空) – Balroq 2011-05-26 18:51:54

+0

是否有區1歲以下兒童孩子嗎?還是他們離開了?如果他們是葉子,你不會得到有意義的結果。要修復您可以將查詢更改爲: WITH MEMBER [Measures]。[Count] AS SUM([Location]。[Hierarchy] .CurrentMember,[Measures]。[Length]) SELECT {[Measures]。[ [ON] 0 0, {[Location]。[Hierarchy]。[Zone]。&[1] .Children} on 1 FROM [NTAP] – 2011-05-27 00:25:59

+0

超級感謝,就是這樣,它在區域1之下離開。 我很難掌握爲什麼這個工作?對我來說,工作查詢中的CurrentMember似乎是Zone 1,而不是它下面的葉子? – Balroq 2011-05-27 06:22:13

0

查詢的L計數的孩子> 0將是:

如果選擇行兒童
WITH 
MEMBER [Measures].[Count of Children with L more than 0] AS 
    FILTER([Location].[Hierarchy].CurrentMember.Children, 
      [Measures].[Length] > 0).COUNT 
SELECT 
{ 
    [Measures].[Count of Children with L more than 0] 
} ON 0, 
{ 
    [Location].[Hierarchy].[Zone].&[1] 
} ON 1 
FROM [Your Cube] 

當然會無法正常工作,那麼你會得到空值,因爲它們葉子和有沒有孩子自己。

+0

對不起,我想我我的這些措施的命名是一種不好的,Measures.Length其實不是下區1.Children單個值,有可能實際上是>下的每個區1.Children 10000個長度值,我想每個孩子在計數長度值的數量。對不起我的措辭吮吸... – Balroq 2011-05-27 07:27:14