我有一个用户维度,它代表了许多商店的层次结构。例如,商店分为国家 -> 地区 -> 城镇/村庄 -> 实际商店。因此,当您从层次结构的角度来看它时,它是 Level1、Level2、Level3、Level4 等。
现在奇怪的是,如果我在 WHERE 子句中执行 MDX 查询和过滤,按层次结构,对于特定用户,没有数据显示。但是,如果我执行相同的 MDX,而不是按层次结构过滤,而是按属性过滤,则会显示记录。
值得一提的是,用户层次结构 [UserIdHierarchy] 包含以下成员的层次结构
- [UserLevel1Id]
- [UserLevel2Id]
- [UserLevel3Id]
- [UserLevel4Id]
- [UserLevel5Id]
这是 2 种情况,它们应该返回完全相同的结果......
使用用户层次结构过滤 Where 子句:
在哪里 ( DESCENDANTS([Dim User].[UserIdHierarchy].&[#12345],0, self) )
没有用户层次结构的 Where 子句过滤:
在哪里 ( DESCENDANTS([Dim User].[UserLevel3Id].&[#12345],0, self) )
为什么两个过滤器不为这个特定用户提供相同的数据?