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

MDX查询生成#错误作为输出

  •  1
  • Thracian  · 技术社区  · 12 年前

    在我的SSAS多维数据集中,我有一个叫做[销售总额]的度量。我想做的是创建另一个指标,使我获得过去6个月的最低销售额。我希望这是一个 移动最小值 ,计算为从本月到6个月前每个时间段的最小销售额。

    我写了MDX语句,但它产生了一个错误,我很难找出原因。这与将Date维度成员聚合到过滤器聚合中有关。

    当我从Date层次结构中选择一个月成员时,它将返回正确的值。当我从层次结构中选择多个成员时,如下图所示,它会出错。

    感谢任何帮助。

    WITH 
    MEMBER [Measures].[Min Sales Total Rolling 6 months] as '(MIN([Date].[Fiscal Month Hierarchy].currentmember.lag(6):[Date].[Fiscal Month Hierarchy].currentmember,[Measures].[Sales Total]))'
    MEMBER [Date].[Fiscal Month Hierarchy].[FilterAggregate] as 
    'AGGREGATE({
    [Date].[Fiscal Month Hierarchy].[Quarter].&[20141].&[201310],
    [Date].[Fiscal Month Hierarchy].[Quarter].&[20141].&[201311],
    [Date].[Fiscal Month Hierarchy].[Quarter].&[20141].&[201312],
    [Date].[Fiscal Month Hierarchy].[Quarter].&[20142].&[201401],
    [Date].[Fiscal Month Hierarchy].[Quarter].&[20142].&[201402],
    [Date].[Fiscal Month Hierarchy].[Quarter].&[20142].&[201403],
    [Date].[Fiscal Month Hierarchy].[Quarter].&[20143].&[201404],
    [Date].[Fiscal Month Hierarchy].[Quarter].&[20143].&[201405],
    [Date].[Fiscal Month Hierarchy].[Quarter].&[20143].&[201406],
    [Date].[Fiscal Month Hierarchy].[Quarter].&[20144].&[201407]
    })'
    SELECT {
    [Measures].[Min Sales Total Rolling 6 months]} ON AXIS(0)
    FROM [My Cube]
    WHERE ([Date].[Fiscal Month Hierarchy].[FilterAggregate])
    
    1 回复  |  直到 12 年前
        1
  •  3
  •   FrankPl    12 年前

    如中所述 this blog by one of the SSAS developers 多年前,multi-select就不适用于 CurrentMember 。您应该使用

    MEMBER [Measures].[Min Sales Total Rolling 6 months] as 
    MIN(Tail(EXISTING [Date].[Fiscal Month Hierarchy].[Fiscal Month Hierarchy].Members).Item(0).Item(0).lag(6)
        :
        Tail(EXISTING [Date].[Fiscal Month Hierarchy].[Fiscal Month Hierarchy].Members).Item(0).Item(0),
        [Measures].[Sales Total])
    

    相反

    EXISTING 获取所有选定成员的集合。这是需要的,因为没有单一的 当前成员 然后 Tail 获取由这些成员中的最后一个组成的集合, Item(0).Item(0) 将单个元素集转换为成员。