2017-03-17 24 views
1

再選擇MDX查詢作爲主查詢的過濾列表過濾列表再選擇MDX查詢作爲主查詢

大家好 我想寫MDX查詢等,以SQL:

select a, b, sum(x) from table1 where b = "True" and a in (select distinct c from table2 where c is not null and d="True") group by a,b

我試一下像這樣:

`大家好 我想寫MDX查詢等,以SQL:

select a, b, sum(x) from table1 where b = "True" and a in (select distinct c from table2 where c is not null and d="True") group by a,b

我嘗試這樣:

SELECT 
NON EMPTY { [Measures].[X] } ON COLUMNS, 
NON EMPTY { [A].[Name].[Name] 
    *[B].[Name].[Name].&[True] 
    } ON ROWS 
FROM 
(
    SELECT 
    { ([A].[Name].[Name]) } ON 0 
    FROM 
    (SELECT ( 
     {EXCEPT([C].[Name].ALLMEMBERS, [C].[Name].[ALL].UNKNOWNMEMBER) }) ON COLUMNS 
     FROM 
     (SELECT ( 
     { [D].[Name].&[True] }) ON COLUMNS 
     FROM [CUBE])) 
) 

但它返回我的X從子查詢的總和。

它應該是什麼樣子? '

+0

你可以嘗試改變[C ]。[Name] .ALLMEMBERS to [C]。[Name]。[Name] .MEMBERS?如果這樣做,我可以進一步解釋。 – GregGalloway

+0

它不起作用。 – KosteK

+0

你能詳細說明一下嗎?錯誤?不正確的結果? – GregGalloway

回答

1

X的測量組與D維有關係嗎?如果這是真的,下面的代碼必須只是工作:

Select 
[Measures].[X] on 0, 
Non Empty [A].[Name].[Name].Members * [B].[Name].&[True] on 1 
From [CUBE] 
Where ([D].[Name].&[True]) 

如果有許多一對多的關係,你需要一個額外的措施(比如Y):

Select 
[Measures].[X] on 0, 
Non Empty NonEmpty([A].[Name].[Name].Members,[Measures].[Y]) * [B].[Name].&[True] on 1 
From [CUBE] 
Where ([D].[Name].&[True]) 
+0

X號的測量組與D尺寸沒有關係。 – KosteK

+0

這意味着您必須添加一個與A和D維度有關的度量,即所謂的多對多關係。我已經添加了一個例子。 –