Ssas 仅按维度成员筛选,不包含子节点

Ssas 仅按维度成员筛选,不包含子节点,ssas,mdx,Ssas,Mdx,我需要按不规则维度(父子维度)查询多维数据集。过滤器可以是任意级别的多个节点 这是因为它将结果限制在我想要的两条供应链上 SELECT [Measures].[Total Revenue] ON COLUMNS , [Product].[Products].Members ON ROWS FROM myCube WHERE ( { [Supply Chain].[SupplyChains].&[{c0c62bda-0369-4591-be

我需要按不规则维度(父子维度)查询多维数据集。过滤器可以是任意级别的多个节点

这是因为它将结果限制在我想要的两条供应链上

SELECT    [Measures].[Total Revenue] ON COLUMNS
        , [Product].[Products].Members ON ROWS
FROM    myCube
WHERE 
(
    {
      [Supply Chain].[SupplyChains].&[{c0c62bda-0369-4591-be85-3a7078bc3352}]
    , [Supply Chain].[SupplyChains].&[{aca836e9-22ac-4952-8809-3f50aeda6891}]
    }
)
我知道,guid键,不是我的设计!问题在于,未分配给特定供应链的数据会分配给顶部节点。如果我将顶部节点添加到列表中,那么将返回所有数据(因为所有数据都从属于它)


是否有方法返回特定成员的值并忽略其子级?我想说的是“返回所有分配给顶级节点或列出的供应链及其子节点的数据)。

谢谢FrankPI,您的评论为我指明了正确的方向

最后,我在Excel中复制了查询,然后使用OLAP数据透视表扩展检查生成的MDX。Excel允许您在子节点上设置筛选器,就像我尝试做的那样


它所做的是创建一组没有过滤子节点的所有节点,以获取其他所有内容。然后,对于具有过滤子节点的节点的父节点(及其所有父节点直至根节点),它将这些节点添加到集合中,但使用.DataMember函数,以便只包含节点值(但不包括其子节点)因此,基本上,它没有说不获取什么,而是显式地说获取什么,列出了可能有点麻烦但有效的所有其他节点。

子代函数有帮助吗?不幸的是,没有……至少不是我尝试的方式。我试着在WHERE子句中说一些类似WHERE的内容(除了(子代(根)){子代)(nodeIDontWant1)、子体(nodeIDontWant2)})尝试保留所有节点,但我要筛选的节点除外。但所有结果都返回了…我假设由于顶部节点在那里,它仍然返回所有子节点,而不是键匹配可能
DataMember
属性会有所帮助,类似于本文: