MDX За исключением функции в предложении where - PullRequest
2 голосов
/ 25 марта 2010

У меня проблема с ограничением запроса в mdx с использованием функции where в предложении where. Мне нужно получить набор данных, но не в определенном наборе. Затем я создал следующий запрос:

select {[Measures].[Amount], [Measures].[Transaction Cost], [Measures].[Transaction Number]} ON COLUMNS,{[ManualProcessing].[All ManualProcessings].[MAGNETICSTRIPE], ManualProcessing].[All ManualProcessings].[MANUAL]} ON ROWS 
FROM [Transactions]
where except([Product].[All Products].Children,{[Product].[All Products].[Debit})

очевидно, это работает нормально, но когда я пытаюсь добавить другое ограничение для среза, я получаю эту ошибку: ни одна функция не соответствует сигнатуре (Set, Member).

В настоящее время я работаю над Mondrian 3.1

Можно ли добавить несколько ограничений на слайсер, когда я использую функцию кроме? Есть ли другой способ получить это?

Ответы [ 2 ]

3 голосов
/ 25 марта 2010

Функция Кроме работает только с наборами. Но вы можете использовать n размеров на вашем where:

select {[Measures].[Amount], [Measures].[Transaction Cost], [Measures].[Transaction Number]} ON COLUMNS,{[ManualProcessing].[All ManualProcessings].[MAGNETICSTRIPE], ManualProcessing].[All ManualProcessings].[MANUAL]} ON ROWS 
FROM [Transactions]
where 
   (
      except([Product].[All Products].Children,{[Product].[All Products].[Debit}),
      except([Set],[Set to exclude])
   )

Это работает в Analysis Services 2005, должно работать в Mondrian

0 голосов
/ 26 марта 2010

Очевидно, что это не может быть сделано на Mondrian, потому что есть ошибка, которая не позволяет составные слайсеры. Я нашел хорошие решения, используя Mondrian OLAP Server. Это создает участника, который исключает набор, который я не хотел. Похоже на это.

WITH member [Product].[Except] as ([Product].[All  Products]) - 
([Product].[All Products].[Debit]) 
SELECT {[Measures].[Amount],[Measures].[Transaction Cost], [Measures].[Transaction Number]} ON COLUMNS,
{[ManualProcessing].[All ManualProcessings].[MAGNETICSTRIPE],[ManualProcessing].[All ManualProcessings].[MANUAL]} ON ROWS 
FROM [Transactions] 
WHERE[Product].[Except]
...