MDX - фильтр по значению меры? - PullRequest
1 голос
/ 16 августа 2011

Я хочу написать выражение MDX, которое использует значение меры в выражении WHERE.

Например: предположим, что я хочу показать доход от проданной продукции в магазинах в разных городах, но я хочу только подсчитать доход от проданной продукции, цена которой превышает $ 10.

Этоэто то, что я пытался, но это не работает:

WHERE ([MEASURES].[Price]>10)

Как я могу сделать это с помощью MDX?

1 Ответ

1 голос
/ 18 августа 2011

Если у вас есть доступ к olap db, вы можете просто создать другую метрику Price (например, создать выражение для вашей таблицы фактов в DSV и создать метрику в этом поле) и использовать ее для дальнейших вычислений.Но если у вас нет доступа к БД, вы можете попробовать следующий скрипт:

WITH
MEMBER [Measures].[Price10] AS
    'IIF([Measures].[Price] < 10,0,[Measures].[Price])'
MEMBER [Measures].[COST] AS
    '[Measures].[Price10]*[Measures].[Unit Count]'
SELECT
    {[Measures].[COST]} ON COLUMNS,
    {[Customer].[Customer Geography].[City].Members,[Customer].[Customer Geography].[All Customers]} ON ROWS
from [Adventure Works]

Это всего лишь предложение ... и оно зависит от типа агрегации, который используется для расчета метрики Price.

...