mondrian中用mdx计算父级百分比和整体百分比
With//整体百分比Member [Measures].[用户的百分比1] as ([Measures].[总用户] / ([Measures].[总用户], [时间].CurrentMember.Parent)), format_string = "|#.00%|"Member [Measures].[用户的百分比2] as ([Measures].[总用户] / ([Measures].[总用户], [客户].CurrentMember.Parent, [时间].CurrentMember.Parent)), format_string = "|#.00%|"SELECTNON EMPTY {[Measures].[总用户], [Measures].[用户的百分比1], [Measures].[用户的百分比2]} ON COLUMNS,NON EMPTY CrossJoin([客户].[客户编号].Members, [时间].[日].Members) ON ROWSFROM [TotalUserCube]
?mdx计算整体百分比
With//整体百分比Member [Measures].[用户的整体百分比] as ([Measures].[总用户] / ([Measures].[总用户], [时间].[All 时间s])), format_string = "|#.00%|"SELECTNON EMPTY {[Measures].[总用户], [Measures].[推送用户的百分比]} ON COLUMNS,NON EMPTY {Hierarchize({[时间].[日].Members})} ON ROWSFROM [TotalUserCube]
好的,你已经获得了你想要的精确的计算指标。然而你不可能让用户也去看这些复杂的MDX表达式,并且做复制和粘贴。此外,随着时间推移,这些表达式还可能发生变化。所以,一个更好的办法是,让这些MDX成为你的cube的一部分。这样,你的用户就可以仅仅引用它们,而不需要理会这些表达式的复杂性。
?
在Mondrian的设计器Schema Workbench中配置如下指标,其xml如下:
<CalculatedMember name="User Percent of Total" dimension="Measures" formula="([Measures].[总用户] / ([Measures].[总用户], [时间].CurrentMember.Parent))" />
?
?