0

我正在使用为 Essbase 数据源自动生成 MDX 代码的 BI 工具。我正在运行两个应该返回相同数字的查询,但我得到不同的数字。第一个查询按月返回一年中 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]
  );

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

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

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

谢谢!

4

1 回答 1

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

他们匹配吗?如果确实如此,那么慢慢添加其他维度,直到它们不匹配,然后您就知道问题出在哪里

于 2017-08-15T08:38:01.143 回答