如何根据 mdx 中的另一个维度层次结构过滤维度层次结构
How to filter a dimension hierarchy based on another dimension hierarchy in mdx
我有一个发件人和收件人维度,它们是员工身体 table 中的角色扮演维度。
我的事实 table 有发件人、收件人、消息列。
我想从一名员工那里获得消息,发送给公司中的每个人,除了那些向他的经理报告的人。
我试过这样的东西
WITH
SET [Others] AS
Except
(
Ascendants([Recipient].[Manager])
,[Sender].[Manager].Parent
)
SELECT
[OTHERS] ON COLUMNS
,{[Measures].[Messages]} ON ROWS
FROM [cube]
WHERE
[Sender].[Manager].&[xyz];
基本思想是..获取给定发件人的收件人的所有上级并过滤其上级列表由发件人 parent.
组成的那些
这行不通,因为我只能在两个不同的维度层次结构之间进行操作。
尝试通过关键字 EXSITING
使 Set
更多上下文感知,然后使用过滤器比较 member_caption
WITH
MEMBER [Measures].[SenderName] AS
[Sender].CurrentMember.Member_Caption
SET [ExistingRecip] AS
(EXISTING
[Recipient].[Manager].MEMBERS)
SET [Others] AS
Filter
(
[ExistingRecip]
,
[ExistingRecip].Item(
[ExistingRecip].CurrentOrdinal - 1).Member_Caption
<>
[Measures].[SenderName]
)
SELECT
[OTHERS] ON COLUMNS
,{[Measures].[Messages]} ON ROWS
FROM [cube]
WHERE
[Sender].[Manager].&[xyz];
我有一个发件人和收件人维度,它们是员工身体 table 中的角色扮演维度。 我的事实 table 有发件人、收件人、消息列。 我想从一名员工那里获得消息,发送给公司中的每个人,除了那些向他的经理报告的人。 我试过这样的东西
WITH
SET [Others] AS
Except
(
Ascendants([Recipient].[Manager])
,[Sender].[Manager].Parent
)
SELECT
[OTHERS] ON COLUMNS
,{[Measures].[Messages]} ON ROWS
FROM [cube]
WHERE
[Sender].[Manager].&[xyz];
基本思想是..获取给定发件人的收件人的所有上级并过滤其上级列表由发件人 parent.
组成的那些这行不通,因为我只能在两个不同的维度层次结构之间进行操作。
尝试通过关键字 EXSITING
使 Set
更多上下文感知,然后使用过滤器比较 member_caption
WITH
MEMBER [Measures].[SenderName] AS
[Sender].CurrentMember.Member_Caption
SET [ExistingRecip] AS
(EXISTING
[Recipient].[Manager].MEMBERS)
SET [Others] AS
Filter
(
[ExistingRecip]
,
[ExistingRecip].Item(
[ExistingRecip].CurrentOrdinal - 1).Member_Caption
<>
[Measures].[SenderName]
)
SELECT
[OTHERS] ON COLUMNS
,{[Measures].[Messages]} ON ROWS
FROM [cube]
WHERE
[Sender].[Manager].&[xyz];