Как я могу вернуть значение меры, используя запрос DAX в SSMS? - PullRequest
1 голос
/ 09 октября 2019

В моей табличной модели у меня проблема с дублированием данных. Это источник этих данных:

HV Item Level Amount :=
IF (
    OR (
        MAX ( 'Item Hierarchy'[Depth] ) < [Level of Item Hierarchy],
        MAX ( 'Product Hierarchy'[Level Number] ) < [Level of Product Hierarchy]
    ),
    BLANK (),
    CALCULATE (
        [HV Dollar Amt],
        'R R2M Group',
        'P R2M Group',
        FILTER (
            'Item Hierarchy',
            'Item Hierarchy'[Depth] = MIN ( 'Item Hierarchy'[Depth] )
        )
    )
)

Я хочу запустить это в службах анализа, чтобы понять, почему цифры не верны.

Как мне поступить, хотя? Я новичок в DAX и вижу, что если я запускаю evaluate 'table_name', это работает, но мне нужно выполнить все это выражение выше.

Может ли кто-нибудь помочь мне в этом?

1 Ответ

1 голос
/ 09 октября 2019

EVALUATE всегда возвращает таблицу, но вы можете вернуть таблицу из одной ячейки следующим образом:

DEFINE
MEASURE 'TableName'[HV Item Level Amount] =
    IF (
        OR (
            MAX ( 'Item Hierarchy'[Depth] ) < [Level of Item Hierarchy],
            MAX ( 'Product Hierarchy'[Level Number] ) < [Level of Product Hierarchy]
        ),
        BLANK (),
        CALCULATE (
            [HV Dollar Amt],
            'R R2M Group',
            'P R2M Group',
            FILTER (
                'Item Hierarchy',
                'Item Hierarchy'[Depth] = MIN ( 'Item Hierarchy'[Depth] )
            )
        )
    )
EVALUATE { 'TableName'[HV Item Level Amount] }

Это должно вернуть таблицу

Value
-------
<Measure Output>

Использование фигурных скобок {...} вокруг последовательности значений, разделенных запятыми, создается список, который в DAX эквивалентен таблице из одного столбца с общим именем столбца Value.

...