Mondrian MDX - фильтр не применяется к нескольким членам запроса - PullRequest
0 голосов
/ 25 ноября 2018

В настоящее время у нас есть запрос, который показывает значение общего количества или продаж по местоположениям магазинов и отделов, я пересекаю агрегированный показатель количества проданных товаров по местам, и результаты в порядке.

Когда мы пытаемсяФильтровать по общему количеству> 500, я вижу только сумму количества, оцененную по значению местоположения, а не по местоположению и отделу.

HAVING, по-видимому, не поддерживается, и если я добавлю фильтр where внизу, существует проблема с тем, что одно и то же семейство / члены используются несколько раз, и это недопустимо.

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] }

Вышеприведенный запрос возвращает нормально, но я получаю значения, которые я проверял, которые действительно сравниваются только с местоположениемsum (total_qty).

РЕДАКТИРОВАТЬ для другой группировки

Я попытался использовать приведенный ниже запрос, который, кажется, работает.Я думаю, что способ рендеринга таблицы в этом случае неправильный, так как вывод, кажется, работает нормально.

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] }

Это то, о чем вы думали?

Ответы [ 2 ]

0 голосов
/ 26 ноября 2018

Снова глядя на проблему, вы можете запросить ее следующим образом.Это позволит вам использовать оригинальную группировку.

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]
0 голосов
/ 26 ноября 2018

Проблема в том, что в вашем фильтре вы действительно не сгруппированы по местоположению и отделу.Вы только сгруппированы по местоположению.Легко исправить, если вы поместите и местоположение, и продукт на одной оси, а меру на противоположной оси.Тогда фильтруйте это.Это будет работать.

...