Essbase MDX查询不匹配

时间:2017-08-09 18:54:23

标签: mdx essbase

我正在使用BI工具为Essbase数据源自动生成MDX代码。我正在运行两个查询,应该带回相同的数字,但我得到不同的数字。 第一个查询按月返回结果,每年12个月,并产生不正确的结果:

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]
  );

第二个查询仅显示1月份的结果,并生成正确的结果:

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]
  );

在第一个查询中我做错了什么?

谢谢!

1 个答案:

答案 0 :(得分: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]
  );

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