MDX:计算每个维度成员的最大值



早上好。 我有以下事实表

FK_Cmd |FK_Ship |Dilevry_time
C001   |1       |20
C001   |2       |25
C002   |1       |23

我想计算每个 Cmd 的平均最大尝试时间,例如 (25+23(/2 = 24。 我正在使用以下MDX请求:

AVG(MAX([Dim Cmd].[PR_Cmd],[Measures].[Delivery time]))

但我没有得到任何正确的结果。 你能帮忙吗? 谢谢

您需要将其定义为成员,如下所示:

WITH MEMBER [Measures].[Max Delivery time] AS Max   
([Dim Cmd].[PR_Cmd].currentMember  
, [Measures].Delivery time]  
)  
MEMBER [Measures].[Avg Max Delivery time] AS Avg
([Dim Cmd].[PR_Cmd].allMembers
, [Measures].[Max Delivery time]  
) 
SELECT [Measures].[Avg Max Delivery time] ON 0 
FROM [Cube]

我目前没有 SSAS,所以我无法测试它,但它应该是类似的东西。另一种方法是在多维数据集定义中将其定义为计算成员(如果这对您来说很重要(,而不是每次都使用 MDX。最终会更快,因为多维数据集将为您准备好该值。

最新更新