【问题标题】:Excel OLAP Set Manager MDX specificationExcel OLAP 集管理器 MDX 规范
【发布时间】:2017-04-06 19:32:15
【问题描述】:

我希望使用 MDX 在 MS Excel(用于 OLAP 数据透视表)中创建一个命名集,该集将汇总特定度量的时间维度内的季度子集。

我尝试了以下方法,但均未成功。第一个有效,但只返回所有季度的总和,而不是我想要的(前 3 个季度),而且它也不包括 SUM。

{((SUBSET([Period].[Qtr].Members,0,2), [Measures].[Sales]))}

{SUM({SUBSET([Period].[Qtr].Members,0,2)}, [Measures].[Sales])}

为什么第二个不起作用?我还尝试了其他没有子集的规范,例如 HEAD、Lead(#) 和 .&[#],但均无济于事。一个例子是

Sum({[Period].[Qtr].Lead(0):[Period].[Qtr].Lead(2)}, [Measures].[Sales])

【问题讨论】:

    标签: excel pivot-table mdx olap-cube


    【解决方案1】:

    当然,您的最后一个示例是非常好的 MDX。如果您从中创建计算度量,我看不出它为什么不起作用。

    这是一个使用 Adventure Works 立方体的工作示例,基于您上面的工作:

    WITH MEMBER [Measures].[SomeMeasure] AS
    Sum({[Date].[Calendar Quarter].Lead(0):[Date].[Calendar Quarter].Lead(2)}, [Measures].[Internet Sales Amount])
    SELECT
    [Measures].[SomeMeasure] ON COLUMNS
    FROM
    [Adventure Works]
    

    编辑

    要在您的多维数据集中创建一个计算度量,它看起来像这样:

    CREATE MEMBER [Measures].[SomeMeasure] AS
    Sum({[Date].[Calendar Quarter].Lead(0):[Date].[Calendar Quarter].Lead(2)}, [Measures].[Internet Sales Amount])
    

    然后,在 Excel 中使用您的多维数据集时,此度量将与其他度量一起可用。 注意:因为您正在执行求和,所以这是一个计算度量。命名集是一组元组,例如一组约会成员,我认为这不是你想要的。

    【讨论】:

    • 非常感谢。对于您的示例,如果我使用 excel 中的 MDX 创建命名集,是否需要包含 WITH MEMBER、SELECT、FROM 等?当我创建一个命名集并查看生成的默认 MDX 时,它不包含任何这些吗?谢谢!
    • 您可以在多维数据集中创建计算度量。请参阅我的编辑以获取另一个示例。
    • @Doug 上面的答案不是named set 它是一个计算成员 - 您也可以在 excel 中创建它们。 excel 中的命名集只需要这样的代码{[Date].[Calendar Quarter].Lead(0):[Date].[Calendar Quarter].Lead(2)}
    • 我不认为他想要一个命名集。他想在给定的一组季度中进行求和。
    • 我确实想要命名集。虽然我已经意识到为什么它不起作用。我没有考虑 Level(0) 'All' 属性。因此,您引用的命名集合行(我也引用)是有效的,但它只返回“全部”而不是像我想要的那样返回 Level(1) 元素 0:2。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-03
    • 2013-05-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多