0

以下是我的查询:

WITH
    SET [sp] AS
        ([time.fin].[day].[${parDate}]:[time.fin].[day].[${partoDate}])

SET [factory] AS
    {[organization].[org].[Fact1],[organization].[org].[Fact2],[organization].[org].[Fact3]}

MEMBER [btype].[b] AS
     AGGREGATE(IIF('${param}'='All',
                    [btype].[type].members,
                     [btype].[type].[${param}]
        ))    

SELECT
NON EMPTY {[factory]} ON COLUMNS,
NON EMPTY {[sp]}ON ROWS
FROM [cube1]
WHERE ([btype].[b], [Measures].[qty])

其中,btype 是退化维度。当我在 CDE 上执行此查询时 .. 有时我得到java.lang.nullpointerexception,行为非常随机。通常,它会给出结果,对于默认负载,它总是会产生积极的结果。但是对于 date range change ,我随机得到了异常。

我的 fact_table 结构有 5 个正常维度和 3 个退化。

同时,我还观察到,如果在查询中添加更多颗粒,则不再出现异常。但是添加它并不能满足我所需的结果。

是否与退化维度概念或高基数问题有关

4

1 回答 1

0

也许这个措施需要更明确:

MEMBER [btype].[b] AS
     AGGREGATE(IIF('${param}'='All',
                    [btype].[type].members,
                     [btype].[type].[${param}]
        ))  

如果你改成下面的,你会遇到错误吗?

MEMBER [btype].[b] AS 
    Sum
    (
      IIF
      (
        '${param}' = 'All'
       ,[btype].[type].MEMBERS
       ,[btype].[type].[${param}]
      )
    ,[Measures].[qty]
    )
于 2015-04-22T17:17:22.993 回答