Предложение WHERE в MDX для динамических представлений управления

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

Вот код, который работает:

SELECT 
    [MEASURE_CAPTION]           AS [Measure]
    ,[MEASURE_IS_VISIBLE]       AS [Visable]
    ,[DESCRIPTION]              AS [Description]
    ,[MEASURE_DISPLAY_FOLDER]   AS [Display Folder]
    ,[EXPRESSION]               AS [Calculation]
FROM $SYSTEM.MDSCHEMA_MEASURES

Пункты WHERE, которые я пробовал:

WHERE ([MEASURE_IS_VISIBLE].[members].[true])

Я получаю следующую ошибку:

The dot expression is not allowed in the context at line 9, column 1.

Также:

WHERE [MEASURE_IS_VISIBLE] = TRUE

Я получаю следующую ошибку:

Error: A Boolean expression is not allowed in the context at line 9, column 7.

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

1 ответ

Решение

MEASURE_IS_VISIBLE является логическим столбцом и должен быть отфильтрован как таковой. Следующий запрос фильтрует результаты только для тех, у кого MEASURE_IS_VISIBLE значение истины. Измените это на WHERE NOT MEASURE_IS_VISIBLE для строк, где это неверно. Вы можете увидеть типы данных для этого DMV из документации здесь.

SELECT 
    [MEASURE_CAPTION]           AS [Measure]
    ,[MEASURE_IS_VISIBLE]       AS [Visable]
    ,[DESCRIPTION]              AS [Description]
    ,[MEASURE_DISPLAY_FOLDER]   AS [Display Folder]
    ,[EXPRESSION]               AS [Calculation]
FROM $SYSTEM.MDSCHEMA_MEASURES 
WHERE MEASURE_IS_VISIBLE 
Другие вопросы по тегам