Что такое MDX "не в" аналоге SQL для предложения where? - PullRequest
1 голос
/ 08 октября 2019

В SQL я могу написать это:

SELECT some_column_1, some_column_2 FROM some_table WHERE some_column_3 NOT IN ("blah", "bleh", "meh");

Как сделать то же самое в MDX? Обратите внимание, что some_column_3 не выбран, но действует как фильтр. Я знаю о EXCEPT вещах в MDX, но я могу использовать это только для того, что выбрано на осях. Как поместить это в WHERE предложение? Или как получить такой же результат с чем-то другим?

Например, мне нужно что-то вроде этого:

SELECT some_measure ON COLUMNS FROM [Model] WHERE some_hierarchy NOT IN ("blah", "bleh", "meh");

Ответы [ 2 ]

3 голосов
/ 08 октября 2019

Вы можете использовать функцию Except или ее сокращение - (знак минус) следующим образом:

SELECT [Measures].[some_measure] ON COLUMNS 
FROM [Model] 
WHERE {-{[Some Dimension].[some_hierarchy].[blah], [Some Dimension].[some_hierarchy].[bleh], [Some Dimension].[some_hierarchy].[meh]}}
1 голос
/ 08 октября 2019

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

Dim1.attrubute1.children - Dim1.attrubute1. "Значение элемента, которое вам не нужно"

Таким образом, ваш запрос преобразуется в

select ([measure]. [Column1]) по столбцам, ([dim1]. [Column2] .children) где ([dim1]. [Column2] .children -{[dim1]. [столбец2]. [л], [dim1]. [столбец2]. [BLEH], [dim1]. [столбец2]. [Мех]})

...