我的多维数据集中有一个多对多维度(在其他常规维度旁边)。当我想在我的行计数度量中排除事实行时,我通常在 MDX 中执行以下操作
SELECT [Measures].[Row Count] on 0
FROM cube
WHERE ([dimension].[attribute].Children - [dimension].[attribute].&[value])
在这个简单的示例中,这似乎比需要的更复杂,但在这种情况下,WHERE 有时会增长,也包括 UNION。
所以这适用于常规维度,但现在我有一个多对多维度。如果我执行上面的技巧,它不会产生所需的结果,即我想排除在多对多维度中具有该特定属性的所有行。
实际上它完全符合 MDX 的要求,即计算所有行,但忽略指定的属性。由于事实表中的一行可以在多对多维度中具有多个属性,因此该行仍将被计算在内。
这不是我需要的,我需要它来明确排除具有该维度属性值的行。此外,我可能会排除多个值。所以我需要的是类似于 T-SQL 的 WHERE .. NOT IN (...)
我意识到我可以从 [attribute].all 和 [attribute].&[value] 中减去结果值,但是当 UNIONing 多个 WHERE 语句时,这将不再起作用。
有人知道如何解决这个问题吗?
提前致谢,
三角洲