过滤维度成员并根据过滤器调整“所有”成员

时间:2016-10-25 22:52:33

标签: mdx olap dimensions olap-cube

我有以下MDX语句,这会导致每个库的客户列表对jobs.cubic具有非空值。此语句还会过滤掉member_caption以'PLU'开头的客户。

如果我包含客户层次结构中的“全部”成员,则它会合计所有客户,包括已通过“PLU”过滤器过滤掉的客户。

是否可以像我在声明中那样为客户选择,并返回'All'成员减去'PLU'过滤器过滤掉的客户的价值。

理想情况下,我希望将每个库的总数(“所有”客户)作为每个库的第一行。

SELECT 
  {[Measures].[Job Cubic]} ON 0
 ,NonEmpty
  (
      {
        [Depot].[State - Depot].[214]
       ,[Depot].[State - Depot].[325]
       ,[Depot].[State - Depot].[447]
       ,[Depot].[State - Depot].[534]
       ,[Depot].[State - Depot].[611]
      }
    * 
      {
        {
          Filter
          (
            [Transport Customer].[Customer].[All Customers].Children
           ,
              Left
              (
                [Transport Customer].[Customer].CurrentMember.Properties('Member_Caption')
               ,3
              )
            <> 'PLU'
          )
        }
      }
   ,{[Measures].[Job Cubic]}
  ) ON 1
FROM [Transport KPIs]
WHERE 
  [Fiscal Date].[Year-Qtr-Month-Week-Date].[Month].&[Sep 16];

1 个答案:

答案 0 :(得分:0)

首先,您可以将过滤后的集合移动到WITH子句中 - 然后创建一个除过滤集之外的所有客户的集合 - 然后您需要将此集合聚合到层次结构{{1}的计算成员中}。

[Transport Customer].[Customer]