MDX - 计算成员 - 在所有时间段内使用相同的值

时间:2013-03-06 21:40:27

标签: mdx

我对MDX很陌生,但我不支持使用新工具并对最近出现的请求提出疑问。我们有一个处方数据的立方体,处方者被分配到不同的地区。我的客户想要一个函数来计算分配给某个地区的处方者数量,所以我制作了这个:

COUNT(
     FILTER([M_Prescriber].[Prescriber].[Prescriber].Members*[Measures].[M-TRx],
     [M_Market_Product].[Product].[All]
     )                              
)

其中列出了在该时间段内开处方的开处方者。客户的问题是这个功能在每个月产生不同的结果,因为当然,一些处方者不会每个月写处方。有没有办法在不考虑特定月份是否有任何处方数据的情况下,返回分配给某个地区的处方者人数。或者我可以在最近的时间段内计算这个值并在每个时间段使用该值吗?

如果我能提供更多详细信息,请告诉我。

1 个答案:

答案 0 :(得分:1)

好的,如果我理解正确,你想要计算每个领土内的Prescriber成员,并且你已经建立了一个层次结构来描述哪个Prescriber在哪个领土。

这是一个反对冒险作品的例子,你可以如何做到这一点:

WITH MEMBER [Measures].[count] AS 
    Count([Customer].[Customer Geography].CurrentMember.Children)
SELECT
    [Measures].[count] ON COLUMNS,
    DrilldownLevel([Customer].[Customer Geography].[All Customers]) ON ROWS
FROM [Adventure Works];

结果:

                count
All Customers       6
Australia           5
Canada              6
France             17
Germany             6
United Kingdom      1
United States      36

这仅计算每个节点的直接子节点(层次结构中的省或州),因此所有客户的计数不是每个国家/地区的计数的总和。

在您的情况下,您可以将ROWS选择更改为您的部门 - >区 - >地区一级。

希望这有助于至少让你走上正轨。