请原谅我如果术语有误,因为我对MDX/OLAP相对较新。
我有一个用于确定道德壁垒的维度。该维度如下所示:
我该如何修改我的过滤器以匹配这样的数据集?请参考以下截图:
我有一个用于确定道德壁垒的维度。该维度如下所示:
Ethical Wall (dimension)
--> Matter ID (hierarchy)
--> Walled (hierarchy)
--> White Listed Initials (hierarchy)
--> Black Listed Initials (hierarchy)
[Walled]
层次结构包含true或false,具体取决于事项是否应用了墙。
白名单和黑名单层次结构分别包含有权访问事项的用户姓名首字母和无权访问事项的用户姓名首字母。请注意,事项只能被列入白名单或黑名单中的一个,而不是两者兼有。
我已经相对轻松地处理了没有墙的情况和白名单情况,但在黑名单情况下遇到了很多问题。这是我目前想出的where子句:
({
(
[Ethical Wall].[Walled].&[True]
,[Ethical Wall].[White Listed Initials].&[XXX]
,[Ethical Wall].[Black Listed Initials].&[]
)
,(
[Ethical Wall].[Walled].&[True]
,[Ethical Wall].[White Listed Initials].&[]
,-{[Ethical Wall].[Black Listed Initials].&[XXX]}
)
,(
[Ethical Wall].[Walled].&[False]
,[Ethical Wall].[White Listed Initials].&[]
,[Ethical Wall].[Black Listed Initials].&[]
)
})
将初始数据集简化并以表格形式呈现,我要进行过滤的数据看起来像这样:
我想要选择只有用户“XXX”可以访问的Ids
。使用上面的过滤器后,返回了所有3个Ids
。我要找的结果集只有Id
1
和2
。上面的过滤器匹配如下:
我明白为什么我的过滤器会检索出所有3个Ids
,但我不知道如何修改过滤器的中间部分才能正确地排除Ids
。以下是过滤器的错误部分:
,(
[Ethical Wall].[Walled].&[True]
,[Ethical Wall].[White Listed Initials].&[]
,-{[Ethical Wall].[Black Listed Initials].&[XXX]}
)
我该如何修改我的过滤器以匹配这样的数据集?请参考以下截图: