キューブに (他の通常のディメンションの隣に) 多対多のディメンションがあります。行数メジャーでファクト行を除外する場合、通常、MDX で次のようにします。
SELECT [Measures].[Row Count] on 0
FROM cube
WHERE ([dimension].[attribute].Children - [dimension].[attribute].&[value])
これは、この単純な例では必要以上に複雑に見えるかもしれませんが、この場合、UNION も含めて WHERE が大きくなることがあります。
したがって、これは通常の次元で機能しますが、多対多の次元になりました。上記のトリックを実行すると、目的の結果が得られません。つまり、多対多のディメンションでその特定の属性を持つすべての行を除外したいと考えています。
つまり、すべての行をカウントしますが、指定された属性は無視します。ファクト テーブルの行は、多対多のディメンションで複数の属性を持つことができるため、行は引き続きカウントされます。
それは私が必要とするものではありません。そのディメンション属性値を持つ行を明示的に除外する必要があります。また、複数の値を除外する場合があります。だから私が必要とするのは、T-SQLの WHERE .. NOT IN (...) に似たものです
[attribute].all と [attribute].&[value] から結果の値を減算するだけでよいことに気付きましたが、複数の WHERE ステートメントを UNION する場合は機能しなくなります。
誰もこれを解決する方法について良い考えを持っていますか?
前もって感謝します、
デルタ