SSAS - > MDX - >根据计数在查询中创建列百分比

时间:2012-01-13 21:11:49

标签: ssas mdx

SELECT NON EMPTY {[Measures]。[Fact Order Count]} ON COLUMNS, {([Front Manager]。[Front Manager Id]。[Front Manager Id] .ALLMEMBERS * [Order Type]。[Order Type]。[Order Type] .ALLMEMBERS)} ON ROWS  FROM [TEST_DW] CELL PROPERTIES VALUE

所以,我在输出中有三列。 :

前台经理,订单类型,订单计数

以上查询显示了每个经理和订单类型组合的计数。我需要第四列,这是每个前台经理的订单类型的百分比。

所以,如果订单有四种类型(A,B,C,D),而且每个订单中有25个订单总数为100.第四列读数为25%......

我已经在网上搜索了如何做到这一点,但在这个方面确实没有做到。任何方向都会非常感激,我绝对是MDX的新手。感谢。

1 个答案:

答案 0 :(得分:2)

您正在寻找的是MDX Calculated members

我们假设订单A的成员被称为:[订单类型]。[订单类型]。[订单A]我们想要从总数中计算百分比。

WITH 
   MEMBER [Order A] AS ([Order Type].[Order Type].[Order A],[Measures].[Fact Order Count]) / ([Measures].[Fact Order Count]) , FORMAT_STRING = 'Percent'
SELECT
   {[Measures].[Fact Order Count],[Measures].[Order A]} on 0
...

计算成员中重要的是您可以评估任何MDX元组(例如([订单类型]。[订单类型]。[订单A],[度量]。[事实订单计数]))。如果需要,这将改变来自枢轴的值(在0和1上定义..)。请注意,您可以为度量以及其他维度添加计算成员。