Mondrian MDX - 过滤器不适用于多个成员查询

Mondrian MDX - Filter Not Applying to Multiple Members Query

我们目前有一个显示总数量值或跨商店位置和部门的销售额的查询,我将销售数量聚合度量值与位置相交,结果很好。

当我们尝试按总数量 > 500 进行过滤时,我只看到按位置值评估的数量总和,而不是按位置和部门分组。

HAVING 似乎不受支持,如果我在底部包含一个 where 过滤器,则同一个 family/members 被多次使用会出现问题,这是不允许的。

SELECT 
  {HEAD([dim_productfamily.hier_productfamily].[lvl_department].Members, 5)}
ON ROWS,
  FILTER
  (
    {HEAD([dim_locations.hier_locations].[lvl_location].Members, 5) * [Measures].[total_qty]},
    [Measures].[total_qty] > 500
  )
ON COLUMNS
FROM 
  [sales_daily] 
WHERE 
  {[dim_date.hier_date].[lvl_date].[20170521] : [dim_date.hier_date].[lvl_date].[20170730] }

上面的查询 returns 很好,但我得到的值是我测试过的,只是与位置总和 (total_qty).

进行了真正的比较

编辑不同分组

我尝试使用以下查询,它似乎有效。我认为我们渲染 table 的方式在这种情况下是不正确的,因为输出似乎工作正常。

SELECT 
  FILTER
  (
     {HEAD([dim_productfamily.hier_productfamily].[lvl_department].Members, 5) * HEAD([dim_locations.hier_locations].[lvl_location].Members, 5)},
     [Measures].[total_qty] > 26
  )
ON ROWS,
  [Measures].[total_qty]
ON COLUMNS
FROM 
   [sales_daily] 
WHERE 
  {[dim_date.hier_date].[lvl_date].[20170521] : [dim_date.hier_date].[lvl_date].[20170730] }

这是你的想法吗?

问题是在您的过滤器中您确实没有按位置和部门分组。您只按位置分组。一个简单的解决方法是将位置和产品放在同一轴上,并将测量放在相反的轴上。然后过滤它。它会起作用。

再看问题,可以通过下面的方式查询。这将使您可以使用原始分组。

WITH 
MEMBER [Measures].[Data Type3] AS ([Geography].[Country].CurrentMember,[Product].[Product].CurrentMember,[Measures].[Reseller Sales Amount])

SELECT 
FILTER
(
{[Product].[Product].Members}
,[Measures].[Reseller Sales Amount] > 2000
)
ON rows,
FILTER
(
([Geography].[Country].members, {[Measures].[Reseller Sales Amount]
,[Measures].[Data Type3]}),
[Measures].[Reseller Sales Amount] > 2000
)
ON columns
FROM 
[Adventure Works]