1

我只有一个立方体和几个数据表。其中一个名为 Stocks 并具有下一个字段:

Date(映射到 Date 维度) Company(映射到 Company 维度) Product(映射到 Product 维度) Amount Money 在它上面,我有 [Measure].[Stock amount] 作为 Amount 的总和

然后,我需要将每个日期的平均库存添加为 sum(amount) / count(distinct Date)

我尝试了下一个选项:
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])'

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

4

2 回答 2

2

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

  1. 创建一个计算不同天数的新度量。这可以通过在日期列上添加度量并使用不同计数作为事实聚合方法来完成。假设它是[措施]。[有数据的天数]。

使用它很简单:

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

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

请注意,没有数据的天数不算在内,这与 Avg 中的行为相同。

于 2015-10-16T13:17:32.147 回答
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 中查询

于 2015-10-16T12:48:16.690 回答