Функция MDX Кроме функции в предложенииwhere

StackOverflow https://stackoverflow.com/questions/2511426

  •  22-09-2019
  •  | 
  •  

Вопрос

У меня возникла проблема с ограничением запроса в mdx с использованием функции исключений в предложении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).

Сейчас я работаю над Мондрианом 3.1.

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

Это было полезно?

Решение 2

Судя по всему, это невозможно сделать в 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]

Другие советы

А Кроме функции работает только с наборами.Но вы можете использовать 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.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top