2017-08-09 100 views
0

我正在使用BI工具自動生成Essbase數據源的MDX代碼。我正在運行兩個查詢應該帶回相同的數字,但我得到不同的數字。 第一個查詢帶回每月爲一年12個月的結果,併產生不正確的結果:Essbase MDX查詢不匹配

SELECT 
    NON EMPTY 
    { 
     [Jan] 
    ,[Feb] 
    ,[Mar] 
    ,[Apr] 
    ,[May] 
    ,[Jun] 
    ,[Jul] 
    ,[Aug] 
    ,[Sep] 
    ,[Oct] 
    ,[Nov] 
    ,[Dec] 
    } 
    DIMENSION PROPERTIES 
    [MEMBER_UNIQUE_NAME] 
    ,[MEMBER_CAPTION] 
    ,[GEN_NUMBER] 
    ,[LEVEL_NUMBER] 
    ON COLUMNS 
,NON EMPTY 
    Descendants 
    (
     [ABOVE] 
    ,[ABOVE].Level 
    ,AFTER 
    ) 
    DIMENSION PROPERTIES 
    [MEMBER_UNIQUE_NAME] 
    ,[MEMBER_CAPTION] 
    ,[GEN_NUMBER] 
    ,[LEVEL_NUMBER] 
    ON ROWS 
FROM [F_IntPrf].[F_IntPrf] 
WHERE 
    (
    [ALL_TERRITORY] 
    ,[ALL_PS_BUS_AFF] 
    ,[ALL_PS_BUS] 
    ,[Input Currency] 
    ,[MayFC] 
    ,[FY17] 
    ,[Forecast] 
    ,[USDRep] 
); 

第二個查詢顯示僅一月的結果,併產生正確的結果:

SELECT 
    NON EMPTY 
    Descendants 
    (
     [ABOVE] 
    ,[ABOVE].Level 
    ,AFTER 
    ) 
    DIMENSION PROPERTIES 
    [MEMBER_UNIQUE_NAME] 
    ,[MEMBER_CAPTION] 
    ,[GEN_NUMBER] 
    ,[LEVEL_NUMBER] 
    ON COLUMNS 
FROM [F_IntPrf].[F_IntPrf] 
WHERE 
    (
    [Jan] 
    ,[ALL_TERRITORY] 
    ,[ALL_PS_BUS_AFF] 
    ,[ALL_PS_BUS] 
    ,[Input Currency] 
    ,[MayFC] 
    ,[FY17] 
    ,[Forecast] 
    ,[USDRep] 
); 

我在第一個查詢中做錯了什麼?

謝謝!

+0

結果是錯誤的?如果在第一個查詢中將[Jan]添加到您的切片器軸中,會發生什麼情況(因爲這顯然是兩者之間切片器的差異)? – jwj

回答

0

爲了關注我會通過比較兩個非常簡單的查詢開始,如這兩個問題:

SELECT 
    NON EMPTY 
    { 
     [Jan] 
    } 
    ON COLUMNS 
,NON EMPTY 
    Descendants 
    (
     [ABOVE] 
    ,[ABOVE].Level 
    ,AFTER 
    ) 
    ON ROWS 
FROM [F_IntPrf].[F_IntPrf] 
WHERE 
    (
    [ALL_TERRITORY] 
); 

與此...

SELECT 
    NON EMPTY 
    Descendants 
    (
     [ABOVE] 
    ,[ABOVE].Level 
    ,AFTER 
    ) 
    ON COLUMNS 
FROM [F_IntPrf].[F_IntPrf] 
WHERE 
    (
    [Jan] 
    ,[ALL_TERRITORY] 
); 

他們是否匹配?如果他們這樣做,然後緩慢地添加其他維度,直到他們不匹配,然後你知道問題在哪裏