2014-05-14 57 views
1

我遇到了一個MDX查詢計數問題。我有這樣的第一個查詢:MDX COUNT受MDX查詢影響的客戶數量

SELECT { [Measures].[Sale Amount] } ON COLUMNS, 
NON EMPTY FILTER (
    {[Customer].[Full Name].Children} * {[Report].[Name].Children} 
    , 
    ([Measures].[Sale Amount] > 100) 
    AND (([Report].[Name].&[Report1]) OR ([Report].[Name].&[Report2])) 
    AND ([Report].[Name].&[Report3]) 
) ON ROWS 
FROM [Default] 

這將顯示我需要的數據。但是從這裏我需要知道這個結果中有多少客戶。對於我有以下MDX查詢

WITH MEMBER MEASURES.X AS Exists(
    [Customer].[Customer Key].Children, 
    FILTER (
    {[Customer].[Full Name].Children} * {[Report].[Name].Children} 
    , 
    ([Measures].[Sale Amount] > 100) 
    AND (([Report].[Name].&[Report1]) OR ([Report].[Name].&[Report2])) 
    AND ([Report].[Name].&[Report3]) 
), 'Customer').Count 
SELECT Measures.X ON 0 FROM [Default] 

(兩個查詢的過濾面積是一樣的)

這最後的查詢總是返回0的結果。我知道有客戶應該是受此查詢影響的客戶可以任何人給我一個我做錯了什麼的提示?

感謝

+0

你想獲得所有客戶的密鑰爲每一個客戶的全名在所有客戶的數量,或只是一個計數過濾器返回的全名? – FrankPl

+0

嗨FrankPl。我希望客戶能夠統計過濾器的所有結果。謝謝 – Kirzy

回答

0

我只想用過濾的計數:

WITH MEMBER MEASURES.X AS 
    FILTER (
     {[Customer].[Full Name].Children} * {[Report].[Name].Children} 
     , 
     ([Measures].[Sale Amount] > 100) 
     AND (([Report].[Name].&[Report1]) OR ([Report].[Name].&[Report2])) 
     AND ([Report].[Name].&[Report3]) 
    ).Count 
SELECT Measures.X ON 0 FROM [Default] 
+0

嗨 謝謝againg FrankPl。這可能工作,唯一的問題是,只要我在過濾器上放置幾個條件就停止工作,只留下([Measures]。[Sale Amount]> 100)它工作正常,但只要我從它不返回任何數據。我錯過了什麼嗎? – Kirzy