仅按维度成员过滤而不包含子节点

时间:2014-07-31 21:46:11

标签: ssas mdx

我需要通过一个参差不齐的维度(父子)查询一个多维数据集。过滤器可以是任何级别的多个节点。

这是因为它将结果限制在我想要的2个供应链......

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键,不是我的设计!问题是未分配给特定供应链的数据被分配给顶级节点。如果我将顶部节点添加到列表中,那么将返回所有数据(因为所有数据都从属于它)。

有没有办法让特定成员返回值而忽略其子代?我想说“将所有数据完全分配给顶级节点或列出的供应链及其子项。”

1 个答案:

答案 0 :(得分:0)

感谢FrankPI,您的评论指出了我正确的方向。

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

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