平均使用SUM并除以非空计数与MDX

时间:2013-03-13 22:38:50

标签: ssas mdx

我知道这应该很容易,但我是MDX的新手并且无法正确使用它。我的目标是获得特定客户的平均订单成本,包括客户在层次结构中的子帐户。如果我想计算零美元订单,我可以使用下面的MDX正确地得到平均值但是我没有(它们实际上显示为空,不是零,但不要担心)。那么如何更新查询以便它只查看非空的OrderCost值?最后一行是失败的尝试。

WITH MEMBER avgcost as ([Measures].[OrderCost]/[Measures].[OrderCount])
SELECT avgcost on columns,
[Dim User].[User ID].&[381] on rows
from [OrdersCube]
//where Filter([Dim User].[User ID].All, [Measures].[OrderCost].Value <> "")

1 个答案:

答案 0 :(得分:1)

您是否考虑过使用Avg()功能?它默认忽略空单元格。您需要构建一个描述您想要平均的单个订单的集合(而不是一个用户的聚合OrderCost)。例如:

WITH MEMBER avgcost as Avg([Orders].Members, [Measures].[OrderCost])
SELECT 
    avgcost on columns,
    [Dim User].[User ID].&[381] on rows
from [OrdersCube]

请参阅此处的文档:http://msdn.microsoft.com/en-us/library/ms146067.aspx