2017-08-09 104 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] 
); 

他们是否匹配?如果他们这样做,然后缓慢地添加其他维度,直到他们不匹配,然后你知道问题在哪里