icCube:添加计算的度量 - 每个日期的平均库存

时间:2015-10-16 12:46:41

标签: average iccube iccube-reporting

我只有一个多维数据集和几个数据表。其中一个名为Stocks并有下一个字段:

日期(映射到日期维度) 公司(映射到公司维度) 产品(映射到产品维度) 量 钱 在它上面,我有[测量]。[股票金额]作为金额的总和

然后,我需要将每个日期的平均库存添加为总和(金额)/计数(不同的日期)

我尝试了下一个选项:
CREATE CALCULATED MEMBER [Measures].[Stock average] AS 'sum([Measures].[Stock amount]) / DistinctCount ([Date].[Date].[Day])'

CREATE CALCULATED MEMBER [Measures].[Stock average] AS 'sum([Measures].[Stock amount]) / DistinctCount ([Rests].[Date])'

他们都在MDX IDE中给出了奇怪的错误结果,并在我尝试从Excel查询时给出错误

2 个答案:

答案 0 :(得分:2)

Oleksandr指出的解决方案很好但是如果你经常使用AverageOverDays我会认为简单性和性能有点不同

  1. 创建一个计算天数明确计数的新度量。这可以通过在日期列上添加度量并使用不同计数作为事实聚合方法来完成。让我们来说吧[测量]。[数据天数]。
  2. 直接使用它:

    WITH MEMBER [Measures].[AvgTrackCost] AS 
                [Measures].[Rests amount] / [Measures].[Days With Data]
    

    这将在100%的场景中按预期工作,速度更快,并且可以很好地扩展。

    请注意,没有数据的天数不计算,它的行为与平均值相同。

答案 1 :(得分:1)

找到它。我可以这样做:

我这样做了:

CREATE CALCULATED MEMBER [Measures].[Average rests] AS 
    AVG(
      EXISTING([Date].[Date].[Day].MEMBERS) ,
      [Measures].[Rests amount]
    )

添加多维数据集

WITH MEMBER [Measures].[AvgTrackCost] AS
  AVG( EXISTING([Date].[Date].[Day].MEMBERS), [Measures].[Rests amount] )
SELECT
  [Measures].[AvgTrackCost] on 0,
  [Distributors].[Distributors].Members ON 1
FROM
  [Spot2d]

在MDX Builder中查询