Ssas 带筛选器的MDX计算成员

Ssas 带筛选器的MDX计算成员,ssas,mdx,calculated-field,cube-script,Ssas,Mdx,Calculated Field,Cube Script,对于MDX来说,这是一个非常新的问题。但却无法“翻译”任何解决方案的答案 我有一个计算行数的度量,称为[Measures].[Fact Count] 我还有一个名为[Document]的维度,它有一个名为[Is Completed]的字段 [Document].[Is Completed]可以有两个值之一:[Yes]或[No] [Document]维度确实有几个其他字段,如[Document Type] 我想问一个问题,比如“我的不同文档类型中有多大百分比已经完成” 我尝试过这样做[完成计数]:

对于MDX来说,这是一个非常新的问题。但却无法“翻译”任何解决方案的答案

我有一个计算行数的度量,称为[Measures].[Fact Count]

我还有一个名为[Document]的维度,它有一个名为[Is Completed]的字段

[Document].[Is Completed]可以有两个值之一:[Yes]或[No]

[Document]维度确实有几个其他字段,如[Document Type]

我想问一个问题,比如“我的不同文档类型中有多大百分比已经完成”

我尝试过这样做[完成计数]:

([Measures].[Fact Count],
[Document].[Is Completed].&[Yes])
然后像这样使用它:

[Measures].[Completed Count]/[Measures].[Fact Count]*100
但是(当然,[Completed Count]会获取我所有已完成的文档,而不仅仅是每个文档,例如[Document Type]


希望这对某人有意义

也许是另一方需要更加明确

(
 ([Measures].[Fact Count],
  [Document].[Is Completed].&[Yes])
/
 ([Measures].[Fact Count],
  [Document].[Is Completed].[All])
)
*100
如果您有一个已完成的属性层次结构,请尝试使用它-可能像这样

(
 ([Measures].[Fact Count],
  [Is Completed].[Is Completed].[Is Completed].&[Yes])
/
 ([Measures].[Fact Count],
  [Is Completed].[Is Completed].[All])
)
*100
还是这个

(
 ([Measures].[Fact Count],
  [Is Completed].[Is Completed].&[Yes])
/
 ([Measures].[Fact Count],
  [Is Completed].[All])
)
*100
如果您将度量值更改为以下值,并在列中输入Yes | No,您是否开始得到正确的结果

(
 ([Measures].[Fact Count])
/
 ([Measures].[Fact Count],
  [Document].[Is Completed].[All])
)
*100
啊,找到解决办法了

由于我的维度包含“是”或“否”值,我可以将它们转换为1和0,并将它们作为[Measures].[Is Completed Sum]添加到我的[Measures]。正如名字所说:我将求和这些值

那么计算就很简单了:

[Measures].[Is Completed Sum]/
[Measures].[Fact Count]*100
或者,如果我将确保不被0除:

iif(
[Measures].[Fact Count] = 0,
null,
[Measures].[Is Completed Sum]/
[Measures].[Fact Count]*100
)
我仍然会在维度中保留我的是/否,因为我可以在需要时将它们用作过滤器

whytheq,非常感谢您的所有意见!它非常有价值,让我的大脑朝着正确的方向旋转:-)

也许是它。 (偷了whytheq的密码,我想他得到了正确的答案)

关于

因为我的维度包含“是”或“否”值,所以我可以将它们转换为1和0 您可以改进模型并向维度添加新的列值


得到1和0,你是在多维数据集中开发,还是在创建一个查询多维数据集的脚本,也就是说,你是在创建多维数据集?我在多维数据集中创建我的计算成员。来自SSMS的Na查询。几乎-但不是现在。我得到的号码是“固定”号码。这意味着我的所有文档类型都具有相同的百分比(即已完成文档的总数与文档总数的比较)。我应该提到的是,我在我的多维数据集中进行了计算,但我从连接到多维数据集的Excel中进行了查询。啊-我想我有一个想法-你有[已完成]的属性层次结构吗?尝试在中交换,而不是使用多级用户层次结构文档Nope-没有层次结构。我认为这是不可能的:用户层次结构是从属性层次结构创建的:
SCOPE ([Document].[Is Completed].&[Yes])
THIS = (
 ([Measures].[Fact Count],
  [Document].[Is Completed].&[Yes])
/
 ([Measures].[Fact Count],
  [Document].[Is Completed].[All])
)
*100
END SCOPE