我需要在MDX中定义一个计算成员(这是SAS OLAP,但我很感激任何使用不同OLAP实现的人的答案)。
新度量值应该从现有度量值通过应用额外的过滤条件来计算。我想通过一个例子更清晰地说明:
- 现有度量值:“总流量”
- 现有维度:“方向”(“进”或“出”)
- 我需要创建一个名为“进入流量”的计算成员,它等于“总流量”加上一个附加过滤器(方向=“进”)
问题是我不知道MDX,而且时间非常紧张(对于初学者的问题,我很抱歉)。我能想到的最好的方法是:
([Measures].[Total traffic], [Direction].[(All)].[In])
除了具有特定方向的单元格外,它几乎可以工作:
因此,看起来“内在”方向过滤器被我自己的过滤器覆盖了。我需要一个“内在”过滤器和我的过滤器的交集。我的直觉是将[Direction].[(All)].[In]
与正在评估的单元格的内在坐标相交,但在没有先阅读相关主题之前很难知道我需要什么 :)
[更新] 我最终得到了:
IIF([Direction].currentMember = [Direction].[(All)].[Out],
0,
([Measures].[Total traffic], [Direction].[(All)].[In])
)
但至少在SAS OLAP中,这会导致额外的查询操作(计算底层数据集中[in]的值),因此最终我没有使用它。