蒙德里安 - 父母与过滤的孩子

时间:2015-05-08 12:21:50

标签: filter mdx parent mondrian

我想为每个产品类别创建一个顶级用户数。 我的产品尺寸类似于以下[产品]。[ProductCategory]。[ProductType]我的应用程序的用户可以过滤产品并返回如下设置:[Product]。[ProductCategory1]。[ProductType1],[Product]。 [ProductCategory3]。[ProductType5],...

现在我获得了每个产品类别的topcount,但它没有过滤该类别的孩子:类型。我的查询示例:

SELECT
  NON EMPTY {[Measures].[Orders]} ON COLUMNS, 
  NON EMPTY 
    {Order(
       Generate(
         Exists(
           [Product].[ProductCategory].Members
          ,{
            [Product].[ProductCategory1].[ProductType1]
           ,[Product].[ProductCategory3].[ProductType5]
           }
         )
      , TopCount(
         Crossjoin(
           {[Product].[ProductCategory].currentmember}
          ,{[USER].[UserName].Members}
         )
        ,5.0
        ,[Measures].[Orders]
       )
     )
   , [Measures].[Orders]
   , DESC
  )
  } ON ROWS 
FROM [Products]

[Product]。[ProductCategory] ​​.currentmember不会返回带有过滤产品类型的类别。

有没有人有解决方案?

2 个答案:

答案 0 :(得分:0)

(不是答案,而是希望帮助找到答案的脚本)

我猜你的问题与剧本的存在部分有关。这会返回您期望的结果吗?

SELECT
  {[Measures].[Orders]} ON COLUMNS, 
  Exists(
     [Product].[ProductCategory].Members
    ,{
        [Product].[ProductCategory1].[ProductType1]
       ,[Product].[ProductCategory3].[ProductType5]
     }
  )
  ON ROWS 
FROM [Products]

答案 1 :(得分:0)

我使用计算的度量来修复问题,以便使用产品成员过滤度量。

WITH MEMBER [Measures].[FilteredOrders] AS
'SUM(exists([Product].[ProductCategory].currentmember.children, {[Product].[ProductCategory1].[ProductType1]
       ,[Product].[ProductCategory3].[ProductType5]}), [Measures].[Orders])'