Sql server 2012 返回低于特定成员的所有级别

Sql server 2012 返回低于特定成员的所有级别,sql-server-2012,ssas,mdx,Sql Server 2012,Ssas,Mdx,在下面的内容中,我希望返回成员Engineering下面的所有树 我猜我误用了IS? 我应该使用membervalue? 我认为使用特定成员会更有效 WITH MEMBER [Measures].[LevelName] AS [Employee].[Employee Department].Level.Name MEMBER [Measures].[LevelNumber] AS [Employee].[Employee Department].

在下面的内容中,我希望返回成员
Engineering
下面的所有树
我猜我误用了
IS

我应该使用
membervalue

我认为使用特定成员会更有效

WITH 
    MEMBER [Measures].[LevelName] AS
        [Employee].[Employee Department].Level.Name
    MEMBER [Measures].[LevelNumber] AS
        [Employee].[Employee Department].Level.Ordinal
SELECT
    {
    FILTER(
        [Employee].[Employee Department].AllMembers,
        [Employee].[Employee Department].[Department] IS 
            [Employee].[Employee Department].[Department].&[Engineering]
        )
    } ON 1,
    {
    [Measures].[LevelName],
    [Measures].[LevelNumber] 
    } ON 0
FROM [Adventure Works] 
以下是错误消息:

正在执行查询。。。查询(10,3)Is函数需要一个级别 2参数的表达式。使用了一个成员表达式。执行 完整的


您不需要使用FILTER函数来获取属于特定成员的所有子成员。就这样做吧:

SELECT
{
    [Employee].[Employee Department].[Department].&[Engineering].CHILDREN
} ON 1,
...
如果希望整个树位于特定成员下方,请使用“子体”功能:

SELECT
{
    DESCENDANTS([Employee].[Employee Department].[Department].&[Engineering],
        [Employee].[Employee Department].[Department], AFTER)
} ON 1,
...

+1感谢
后代
SELF\u以及
之后的给了我想要的。在中使用
过滤器
/
是否可能?我不确定。不过,我对此表示怀疑,因为筛选函数的逻辑表达式参数是在不同的上下文中计算的。在
MDX
中使用上下文中/不使用上下文的想法对我来说仍然有点陌生……您有什么好的参考资料可以帮到我吗?请看:-很遗憾,我不知道有什么好的资源专门针对MDX,但是关于分析服务的Wrox系列书籍通常包含一些好东西。