我需要在 MDX 中定义一个计算成员(这是 SAS OLAP,但我很感谢那些使用不同 OLAP 实现的人的回答)。
新度量的值应通过应用附加过滤条件从现有度量计算。我想举个例子会更清楚:
- 现有度量:“总流量”
- 现有维度:“方向”(“In”或“Out”)
- 我需要创建一个计算成员“传入流量”,它等于带有附加过滤器的“总流量”(Direction = “In”)
问题是我不了解 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] 的值),所以我最终没有使用它。