多くのショップの階層を表すユーザー ディメンションがあります。たとえば、店舗は国 - > 地域 - > 町/村 - > 実際の店舗に分割されます。したがって、階層の観点から見ると、レベル 1、レベル 2、レベル 3、レベル 4 などです。
奇妙なことに、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) )
両方のフィルターが、この特定のユーザーに対して同じデータを表示しないのはなぜですか?