【问题标题】:Calculated Member - Number of Expense lines with a particular status计算成员 - 具有特定状态的费用行数
【发布时间】:2015-10-28 10:05:19
【问题描述】:

我对 Visual Studio 中的 mdx 查询很陌生。

该多维数据集是随 Microsoft Dynamics AX 2012 提供的开箱即用多维数据集(费用索赔)。该多维数据集是使用 VS 部署和打开的。

我正在尝试计算具有特定状态的费用行数。

以下是我想出的用于创建计算成员的代码:

CALCULATE;        
CREATE MEMBER MEASURES.[Draft Expenses] AS
SELECT
COUNT(
    NONEMPTY(
                [Expense lines].[Expense lines].MEMBERS,
                [Expense lines].[Document status] == [Expense lines].[Document status].&[1]
            )
) on 0
FROM [Expense management cube]

出现以下错误:

在指定完整语句时需要一个 mdx 表达式。 在 MDX 脚本中遇到一个或多个错误

我尝试以link 为例,但没有成功。

有什么帮助吗?

谢谢

【问题讨论】:

  • 你可以删除这个位[Expense lines].[Document status] == 。我认为 == 不是有效的 mdx 运算符。如果您需要使用相等作为条件,请将 == 替换为 IS,尽管在 NonEmpty 的上下文中这两个运算符都不合适。

标签: visual-studio ssas mdx microsoft-dynamics cube


【解决方案1】:

使用以下定义:

CREATE MEMBER MEASURES.[Draft Expenses] AS
COUNT
    (
     NonEmpty
            (
             [Expense lines].[Expense lines].MEMBERS,
             {[Expense lines].[Document status].&[1]} * Measures.[SomeOtherMeasure]
            )
    )

【讨论】:

  • 其他措施应该是什么?我正在尝试根据状态过滤所有成员,那么为什么需要执行该乘法?
  • 可以是任何度量。其次,它不是乘法而是交叉连接。
  • 感谢您的回复。我尝试执行以下操作:计算; CREATE MEMBER MEASURES.[Draft Expenses] AS COUNT ( NonEmpty ( [Expense Lines].[Expense Lines].MEMBERS, {[Expense Lines].[Document status].&[1]} * [Measures].[Expense amount] ) ) 但它仍然显示相同的错误。有什么想法吗?
  • 我不知道你为什么要输入CALCULATE。您可以删除它并尝试一次吗?
  • 对于您的 NonEmpty 函数的条件,这是否更传统一些? ...{([Expense lines].[Document status].&[1], [Measures].[SomeOtherMeasure])}
【解决方案2】:

根据 Sourav 的建议,您可以稍微简化一下:

CREATE MEMBER MEASURES.[Draft Expenses] AS
COUNT(
     NONEMPTY(
         [Expense lines].[Expense lines].MEMBERS,
         {[Expense lines].[Document status].&[1]}
      )
 );

【讨论】:

  • 这会抛出“循环引用”错误。试试看:)
  • 有趣 - 这是因为 MEASURES.[Draft Expenses] 添加到层次结构的默认成员 MEASURES 但条件 {[Expense lines].[Document status].&[1]} 也使用默认成员?还是因为 nonempty 期望它的条件来自与它的第一个参数不同的维度?
  • 当您没有明确包含“不同的度量”时,效果类似于在元组中包含每个度量。因此,作为一个计算出来的“度量”,这会导致自我参照。如果您还记得,前一段时间,我们正在考虑为什么您不能在度量维度中拥有聚合度量。我相信原因是一样的。
  • “类似于包括每项措施” - 我不太确定这一点。如果我们使用行上的日期和列上的产品进行简单查询,但未指定度量,则包含默认度量,不是吗。这不是类似的情况吗?
  • 我收回了。如果没有明确指定度量,则考虑范围内的度量,即构建的度量。
猜你喜欢
  • 2022-12-06
  • 1970-01-01
  • 1970-01-01
  • 2021-02-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多