MDX: фильтрация набора элементов по значениям таблицы меры - PullRequest
3 голосов
/ 05 февраля 2009

У меня есть некоторые числа в таблице фактов, и я сгенерировал меру, которая использует агрегатор SUM для суммирования чисел. Но проблема в том, что я хочу суммировать только те числа, которые превышают, скажем, 10. Я попытался использовать общее выражение в определении меры, и это работает, конечно, но проблема в том, что мне нужно иметь возможность динамически устанавливать это значение, потому что оно не всегда равно 10, то есть пользователи должны иметь возможность выбрать его самостоятельно.

Точнее, мой текущий MDX выглядит так:

WITH
SET [Email Measures] AS '{[Measures].[Number Of Answered Cases], 
[Measures].[Max Expedition Time First In Case], [Measures].[Avg Expedition Times First In Case], 
[Measures].[Number Of Incoming Email Requests], [Measures].[Avg Number Of Emails In Cases],
[Measures].[Avg Expedition Times Total],[Measures].[Number Of Answered Incoming Emails]}' 

SET [Organizations] AS '{[Organization.Id].[860]}' 
SET [Operators] AS '{[Operator.Id].[3379],[Operator.Id].[3181]}'
SET [Email Accounts] AS '{[Email Account.Id].[6]}'
MEMBER [Time.Date].[Date Period] AS Aggregate ({[Time.Date].[2008].[11].[11] :[Time.Date].[2009].[1].[2] }) 
MEMBER [Email.Type].[Email Types] AS Aggregate ({[Email.Type].[0]}) 
SELECT {[Email Measures]} ON columns,
[Operators] ON rows 
FROM [Email_Fact]
WHERE ( [Time.Date].[Date Period] )

Теперь рассматриваемый участник является расчетным участником [Avg Expedition Times Total]. Этот член принимает две меры; [Сумма времени экспедиции] и [Количество времени экспедиции] и деление одного на другое, чтобы получить среднее значение, все это в настоящее время работает. Тем не менее, я хочу, чтобы [Sum Expedition Times] суммировал только значения сверх или под параметром моего / пользователя.

Как мне отфильтровать числа, которые повторяет [Сумма Экспедиционного Времени], вместо того, чтобы отфильтровывать сумму, которую мера дает мне в конце?

Ответы [ 2 ]

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

Вам необходимо иметь измерение, которое имеет различные значения этой меры (например, если число различных значений слишком велико, возможно, какой-то диапазон) Тогда вы присоединяете это измерение к факту. Присоединение должно быть простым. Столбец Measure также станет ключевым столбцом. Теперь вам просто нужно сослаться на размерный член.

0 голосов
/ 22 апреля 2009

Вы можете переместить элемент в запрос MDX вместо помещения его в куб. Тогда вы получите что-то вроде ....

WITH
MEMBER [Avg Expedition Times Total] AS
SUM(
    FILTER([Your Dimension],
        [Measure you want to filter] > 10),
    [Measure you want to sum])

Я не уверен, какие именно измерения и измерения вы хотите отфильтровать и суммировать, но я думаю, что это шаг в правильном направлении. Если ваши пользователи не могут изменить MDX (или не хотят!), То создание нескольких мер также является довольно надежным решением.

...