我只有一个多维数据集和几个数据表。其中一个名为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查询时给出错误
答案 0 :(得分:2)
Oleksandr指出的解决方案很好但是如果你经常使用AverageOverDays我会认为简单性和性能有点不同
直接使用它:
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中查询