使用多个时间维度元素进行MDX计算

时间:2016-12-22 16:26:05

标签: mdx olap olap-cube

我们有一个OLAP多维数据集,其中包含以下维度:Ship_Date,Product,Customer。这些指标是单位,成本,定价,卖出价格。

我们想要设置成本/单位,清单价格/单位和卖出价格的计算,如下所示:

[Measure].[Cost]/[Measure].[Units]

这适用于一个时间元素(所有发货日期,2016年,2016年1月等)但是当选择多个元素时,例如2016& 2015年或2016年1月& 2016年2月,计算无法正确解析,我们认为这是因为它是对比率进行求和而不是计算总和。

我尝试了以下计算得到的类似结果:

SUM([Ship_Date].CurrentMember.Level.Members,[Measure].[Cost]) / 
SUM([Ship_Date].CurrentMember.Level.Members,[Measure].[Units])

SUM(Descendants([Ship_Date].CurrentMember, [Month]), [Measure].[Cost]) / 
SUM(Descendants([Ship_Date].CurrentMember, [Month]), [Measure].[Units])

Aggregate(Descendants([Ship_Date].CurrentMember, [Date]), [Measure].[Cost]) / 
Aggregate(Descendants([Ship_Date].CurrentMember, [Date]), [Measure].[Units])

我对MDX很新 - 有人可以指出我正确的方向吗?

1 个答案:

答案 0 :(得分:0)

也许尝试使用计算的solve_order:https://msdn.microsoft.com/en-us/library/ms145539.aspx

DIVIDE(
   [Measure].[Cost]
  ,[Measure].[Units]
)
, SOLVE_ORDER = 1  //<<also maybe try -1 or -6500