Состояние MDX "FILTER" не работает - PullRequest
0 голосов
/ 02 января 2012

Теперь моя проблема - условие фильтра в запросе MDX. Используемый мной запрос MDX показан ниже

SELECT
NON EMPTY { [Channel].[Grand Total],
            [Channel].[Grand Total].Children } ON COLUMNS,
NON EMPTY { [Offer].[Grand Total],
            [Offer].[Grand Total].Children } ON ROWS 
FROM
  [SCMAircelCube]
WHERE
( [Measures].[TotalCount], 
  [BasicCause].[Subscriber activated successfully] ,
  [SubscriberProfile].[Active], 
  [Circle].[ASSAM])

Проблема с этим запросом состоит в том, что он показывает предложения, начинающиеся с '' AOL ". На самом деле я не хочу показывать это предложение в отчете. Поэтому я пытаюсь использовать условие FILTER. Но оно тоже не работает. я получаю ошибку. Может кто-нибудь помочь мне Я хочу использовать условие фильтра на ROWS. Я использовал следующий MDX для фильтрации. Но ошибка становится

SELECT
NON EMPTY { [Channel].[Grand Total],
            [Channel].[Grand Total].Children } ON COLUMNS,
FILTER( { [Offer].[Grand Total],
          [Offer].[Grand Total].Children !=[AOL]} ) ON ROWS
FROM
  [SCMAircelCube]
WHERE
( [Measures].[TotalCount], 
  [BasicCause].[Subscriber activated successfully] , 
  [SubscriberProfile].[Active], 
  [Circle].[ASSAM])

Спасибо и С уважением plshelpmep

Ответы [ 2 ]

0 голосов
/ 04 января 2012

Вы можете использовать функцию EXCEPT:

SELECT
NON EMPTY { [Channel].[Grand Total],
            [Channel].[Grand Total].Children } ON COLUMNS,
 { [Offer].[Grand Total], EXCEPT({[Offer].[Grand Total].Children}, {[Offer].[Grand Total].[AOL]})}  ON ROWS
FROM
  [SCMAircelCube]
WHERE
( [Measures].[TotalCount], 
  [BasicCause].[Subscriber activated successfully] , 
  [SubscriberProfile].[Active], 
  [Circle].[ASSAM])
0 голосов
/ 02 января 2012

Является ли ваша функция фильтра mdx , которая наиболее вероятно вызывает проблему, вы можете попробовать что-то вроде:

FILTER( { [Offer].[Grand Total],[Offer].[Grand Total].Children}, 
        [Offer].[Grand Total].currentmember is not [Offer].[Grand Total].[AOL] )

В качестве ответа на ваш комментарий и исправления проблем в скобках:1006 *

SELECT 
 { [Channel].[Grand Total], [Channel].[Grand Total].Children } ON COLUMNS, 
 FILTER ( {[Offer].[Grand Total], [Offer].[Grand Total].Children }, 
   not([Offer].[Grand Total].currentmember is [Offer].[Grand Total].[AJOKED]) ) ON ROWS
FROM [SCMAircelCube] 
WHERE ( [Measures].[TotalCount], [Time].[2012].[1], [BasicCause].[Subscriber activated successfully], [ContentCategory].[SMS], [SubscriberProfile].[Active], [Circle].[KARNATAKA])
...