代码之家  ›  专栏  ›  技术社区  ›  Ant

有没有办法指定每个单元格都应该使用MDX返回?

  •  0
  • Ant  · 技术社区  · 15 年前

    Select {
        ([Measures].[M1], [Time].[2000]),
        ([Measures].[M2], [Time].[2000]),
        ([Measures].[M1], [Time].[2001]),
        ([Measures].[M2], [Time].[2001])
    } on 0
    From [Cube]
    Where
        ([Some].[OtherStuff])
    

    使用AnalysisServices 2008。即使我没有指定NON-EMPTY或类似的值,我仍然只返回三个单元格(其中一个为null)。

    我如何确保所有的单元格都被带回来-即使是空的单元格?

    其他想法: 上面的查询实际上不是我正在运行的查询(令人惊讶的是:)。真正的一个具有来自同一维度的两个层次结构,它们被指定为select的一部分,也被指定为where子句的一部分。我想知道这是否与此有关,但我想不出确切的原因。

    其他想法:* 这似乎是AS2005/8中名为“自动存在”的功能。请查看有关的章节 this MSDN article .

    2 回复  |  直到 15 年前
        1
  •  1
  •   Teroman Teroman    15 年前

    这不是一个答案,但这应该有助于缩小问题的范围,这是一个在AdventureWorks中复制问题的查询

    SELECT
    
    { ( [Date].[Calendar].[Date].&[1], [Date].[Fiscal].[Date].&[1129] ) } on 0
    
    FROM [Adventure Works]
    

        2
  •  1
  •   Eric    15 年前

    你在拉回不同的维度,这不太适合飞行。请尝试以下方法:

    with 
    member [Time].[Calendar].[CY2000] as 
        ([Time].[Calendar].[2000], [Time].[Fiscal].[All Time])
    
    member [Time].[Calendar].[FY2001] as
        ([Time].[Calendar].[All Time], [Time].[Fiscal].[2001])
    
    select
        {[Time].[Calendar].[CY2000], [Time].[Calendar].[FY2001]}*
        {[Measures].[M1], [Measures].[M2]}
    on columns
    from [Cube]
    where
        {[Some].[OtherOtherStuff]}