我有一个发件人和收件人维度,它们是员工物理表格中的角色扮演维度。 我的事实表有发件人,收件人,邮件列。 我希望将员工发送的消息发送给公司中的每个人,除非向他的经理报告。 我试过这样的事情
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];
基本思想是......了解给定发件人的所有收件人,并过滤那些上升列表由发件人父母组成的人。
这不起作用,因为除了两个不同的维度层次结构之外,我无法做到这一点。
答案 0 :(得分:1)
尝试通过关键字Set
更多地了解EXSITING
上下文,然后使用过滤器来比较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];