Function 多个成员的MDX子女

Function 多个成员的MDX子女,function,union,mdx,member,children,Function,Union,Mdx,Member,Children,子函数返回成员的集合。 但我需要几个成员的孩子 问题是,我不能使用Union让它像这样工作: Union([Geography].[Geography].[USA].children,[Geography].[Geography].[Canada].children) 我不知道会有多少会员。。。所以我实际上需要一组成员的所有子成员 比如: 有这样的函数吗 我不能回答我的问题,所以我只是编辑它。在DHN的回答和一些脑力劳动的帮助下,我找到了一个可以使用的解决方案: Except(DRILLDOW

子函数返回成员的集合。 但我需要几个成员的孩子

问题是,我不能使用Union让它像这样工作:

Union([Geography].[Geography].[USA].children,[Geography].[Geography].[Canada].children)
我不知道会有多少会员。。。所以我实际上需要一组成员的所有子成员

比如:

有这样的函数吗

我不能回答我的问题,所以我只是编辑它。在DHN的回答和一些脑力劳动的帮助下,我找到了一个可以使用的解决方案:

Except(DRILLDOWNLEVEL( {[Geography].[Geography].[USA],[Geography].[Geography].[Canada]},,0 ),
{[Geography].[Geography].[USA],[Geography].[Geography].[Canada]})
这对我来说确实有用。 说明:我深入研究了该工具提供给我的元素,返回了children加上parents,然后我使用DHN的想法,除了parents之外,所以稍微整理一下列表


希望这是可以理解的。

事实上,您可以使用a来获取所需的设置

差不多

[Geography].[Geography].[USA] * [Geography].[Geography].[Canada] * [Geography].[Geography].[GB]
但是,如果您只有几个不同的搜索条件,那么这只是一个合适的解决方案

或者,您可以使用删除那些您不感兴趣的标准。例如

Except([Geography].[Geography].children, [Geography].[Geography].[Germany])
这将为您提供[地理]维度的全部内容,除了[德国]维度

希望这有点帮助

在对的注释后编辑

好的,这不是你问题的一部分,但我认为你需要的是MemberToStr函数。请找医生

我认为像这样的事情应该会奏效

with   member [Measures].[Cities]
as     membertostr([Geography].[Geography].members.children)
select [Measures].[Cities] on 0
from   [WhatEverYourCubeNameIs]    
where  (
    [Geography].[Geography].[USA],
    [Geography].[Geography].[Canada]
)

请注意,此查询完全未经测试。我也可能失去了一些技能,因为我已经有一段时间没用了。您还必须动态创建查询,因为选择似乎取决于用户。但我相信你已经意识到了

实际上,你可以用a来得到你想要的电视机

差不多

[Geography].[Geography].[USA] * [Geography].[Geography].[Canada] * [Geography].[Geography].[GB]
但是,如果您只有几个不同的搜索条件,那么这只是一个合适的解决方案

或者,您可以使用删除那些您不感兴趣的标准。例如

Except([Geography].[Geography].children, [Geography].[Geography].[Germany])
这将为您提供[地理]维度的全部内容,除了[德国]维度

希望这有点帮助

在对的注释后编辑

好的,这不是你问题的一部分,但我认为你需要的是MemberToStr函数。请找医生

我认为像这样的事情应该会奏效

with   member [Measures].[Cities]
as     membertostr([Geography].[Geography].members.children)
select [Measures].[Cities] on 0
from   [WhatEverYourCubeNameIs]    
where  (
    [Geography].[Geography].[USA],
    [Geography].[Geography].[Canada]
)
请注意,此查询完全未经测试。我也可能失去了一些技能,因为我已经有一段时间没用了。您还必须动态创建查询,因为选择似乎取决于用户。但我相信你已经意识到了

您可以使用链接描述的第四种形式,即使用集合作为其第一个参数。因此,

Descendants( { 
             [Geography].[Geography].[USA],
             [Geography].[Geography].[Canada],
             [Geography].[Geography].[GB]
             },
             1,
             SELF
           )
应该提供您想要的内容。

您可以使用链接描述的第四种形式使用集合作为其第一个参数。因此,

Descendants( { 
             [Geography].[Geography].[USA],
             [Geography].[Geography].[Canada],
             [Geography].[Geography].[GB]
             },
             1,
             SELF
           )

您应该能提供您想要的东西。

谢谢您的快速回答。但问题是,成员集是动态生成的。这意味着有人在下拉列表中选择多个国家。所以,如果有人选择美国和加拿大,而孩子们是城市——它应该返回一组像西雅图、洛杉矶、温哥华……请找到我的扩展答案。下次你应该更清楚你的问题。这不是显而易见的,你想要达到的目标。尽管如此,希望它能有所帮助;谢谢,伙计,我也编辑了我的问题。我想我们都找到了解决办法谢谢你的快速回答。但问题是,成员集是动态生成的。这意味着有人在下拉列表中选择多个国家。所以,如果有人选择美国和加拿大,而孩子们是城市——它应该返回一组像西雅图、洛杉矶、温哥华……请找到我的扩展答案。下次你应该更清楚你的问题。这不是显而易见的,你想要达到的目标。尽管如此,希望它能有所帮助;谢谢,伙计,我也编辑了我的问题。我想我们都找到了解决办法