MDX "not in" SQL 对 where 子句的模拟是什么?

What is MDX "not in" SQL's analog for where clause?

在SQL我可以这样写:

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

如何在 MDX 中做同样的事情?请注意 some_column_3 未被选中,但用作过滤器。 我知道 MDX 中的 EXCEPT 东西,但我只能将它用于在轴上选择的东西。如何将它放在 WHERE 子句中?或者如何用其他东西获得相同的结果?

例如,我需要这样的东西:

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

IN MDX 如果您想要除任何特定成员之外的维度属性的所有成员,请使用以下语法

Dim1.attrubute1.children - Dim1.attrubute1."member value you dont want"

因此您的查询将转换为

select ([措施].[第 1 列]) 在专栏上, ( [dim1].[column2].children ) 在哪里 ([dim1].[column2].children - {[dim1].[column2].[blah],[dim1].[column2].[bleh],[dim1].[column2].[meh]})

您可以像这样使用 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]}}