在MDX中添加复杂度量

时间:2015-10-11 10:07:04

标签: mdx iccube

我已经成功添加了基本的sum / count / etc.简单的度量,但不知道如何添加更复杂的一个。

假设数据结构代表货物的轨道并具有下一个结构:

  • 日期
  • id_track
  • id_articte
  • 金额
  • 成本

想要计算下一步措施:

  1. 平均商品价格,以总和(成本)/总和(金额)计算
  2. 平均跟踪成本。它是整个曲目的总和(成本)之间的平均值。 Sql表达式看起来像sum(cost)/ count(distinct id_track)
  3. 将此度量添加到我的多维数据集的正确方法是什么,以防我在ExcelA中需要它们?

2 个答案:

答案 0 :(得分:3)

使用我们在MDX' 计算的度量中调用的内容来解决复杂计算。

计算度量支持MDX语言的全部功能。您可以查看有关计算度量here的更多信息。它们功能非常强大,支持100多种功能(function list)。

如果您想为每个架构定义一次计算度量,我建议在Builder UI选项卡中的Advanced / Scripts中定义它们。您可以先在MDX IDE中检查有效性,并在验证后将其移至脚本。

答案 1 :(得分:1)

  

平均商品价格,以总和(成本)/总和(金额)计算

这看起来如下所示:

WITH MEMBER [Measures].[AvgPrice] AS
  AVG(
    EXISTING([Item].[Item].MEMBERS)
   ,[Measures].[COST]
  )
...

或者

WITH MEMBER [Measures].[AvgPrice] AS
  [Measures].[COST] 
  / 
  [Measures].[AMOUNT] 
...
  

平均跟踪成本。它是整个曲目的总和(成本)之间的平均值。   Sql表达式看起来像sum(cost)/ count(distinct id_track)

WITH MEMBER [Measures].[AvgTrackCost] AS
  AVG(
    EXISTING([TrackItem].[TrackItem].MEMBERS)
   ,[Measures].[COST]
  )
...

我不得不猜测您的多维数据集中存在以下内容:

[Measures].[COST]
[Measures].[AMOUNT] 
[Item].[Item].MEMBERS
[TrackItem].[TrackItem].MEMBERS