对MDX很陌生,所以这可能是一个新手问题。但是无法“翻译”解决方案的任何答案!
我有一个措施来计算我的行数[测量]。[事实计数]
我还有一个名为[Document]的Dimension,它有一个名为[Is Completed]的字段。
[文件]。[完成]可以有两个值之一:[是]或[否]。
[Document]维度有几个其他字段,如[Document Type]
我想问一个问题,例如“我的不同文件类型的百分比已经完成了多少”。
我试过像这样制作[完成计数]:
([Measures].[Fact Count],
[Document].[Is Completed].&[Yes])
然后像:
一样使用它[Measures].[Completed Count]/[Measures].[Fact Count]*100
但是(当然)[完成计数]然后取得我所有已完成的文件,而不仅仅是那些文件。 [文件类型]
希望这对某人有意义!
答案 0 :(得分:2)
啊,得到了解决方案!
因为我的维度包含"是"或"否"值,我可以将它们转换为1和0,并将它们作为[Measures]添加到我的[Measures]。[Is Completed Sum]。正如名称所说:我将对这些值进行求和。
然后计算是直截了当的:
[Measures].[Is Completed Sum]/
[Measures].[Fact Count]*100
或者我确保不要除以0:
iif(
[Measures].[Fact Count] = 0,
null,
[Measures].[Is Completed Sum]/
[Measures].[Fact Count]*100
)
我仍然会将我的“是/否”保留在Dimension中,因为我可以在需要时将它们用作过滤器。
whytheq,非常感谢您的所有投入!它非常有价值,让我的大脑在正确的方向旋转: - )
答案 1 :(得分:1)
也许另一方需要更明确?
(
([Measures].[Fact Count],
[Document].[Is Completed].&[Yes])
/
([Measures].[Fact Count],
[Document].[Is Completed].[All])
)
*100
如果你有一个Is Completed的属性层次结构,请尝试使用它 - 可能就像这样......
(
([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 |没有ON COLUMNS你开始得到正确的结果吗?
(
([Measures].[Fact Count])
/
([Measures].[Fact Count],
[Document].[Is Completed].[All])
)
*100
答案 2 :(得分:0)
也许SCOPE。 (偷了为什么theq的代码,我认为他得到了正确的答案)
SCOPE ([Document].[Is Completed].&[Yes])
THIS = (
([Measures].[Fact Count],
[Document].[Is Completed].&[Yes])
/
([Measures].[Fact Count],
[Document].[Is Completed].[All])
)
*100
END SCOPE
关于
因为我的维度包含"是"或"否"值,我可以将它们转换为1和0 您可以改进模型并向Dimension添加新的Column Value。
实际上只用< 1得到1和0构件> VALUE