У меня есть измерение многие ко многим в моем кубе (рядом с другими обычными измерениями). Когда я хочу исключить строки фактов в моей мере подсчета строк, я обычно делаю что-то вроде следующего в MDX
SELECT [Measures].[Row Count] on 0
FROM cube
WHERE ([dimension].[attribute].Children - [dimension].[attribute].&[value])
В этом простом примере это может показаться более сложным, чем необходимо, но в этом случае ГДЕ может иногда расти, включая UNION.
Так что это работает для обычных измерений, но теперь у меня есть измерение многие ко многим. Если я выполняю описанный выше трюк, он не дает желаемого результата, а именно я хочу исключить все строки, имеющие этот определенный атрибут, в измерении «многие ко многим».
На самом деле он выполняет именно то, что запрашивает MDX, а именно подсчитывает все строки, но игнорирует указанный атрибут. Поскольку строка в таблице фактов может иметь несколько атрибутов в измерении «многие ко многим», строка все равно будет учитываться.
Это не то, что мне нужно, это нужно для явного исключения строк, имеющих значение этого атрибута измерения. Также я могу исключить несколько значений. Так что мне нужно что-то похожее на T-SQL, где ... НЕ В (...)
Я понимаю, что могу просто вычесть результирующие значения из [attribute] .all и [attribute]. & [Value], но это больше не сработает при объединении нескольких операторов WHERE.
У кого-нибудь есть хорошая идея, как решить эту проблему?
Заранее спасибо,
Delta