2013-03-13 24 views
0

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

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 <> "") 

回答

0

您是否考虑过使用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