2013-08-20 4 views
1

У меня есть 2 связанных фильтров в ПФС и есть формула связи между ними:не nonemptycrossjoin работает как задумано в бод

nonemptycrossjoin 
    ( 
     [SAMPLECODE].[SAMPLECODE].members, 
     { <<UniqueName>> } 
    ) 

Это nonemptycrossjoin якобы должен вывезти SAMPLECODE-членов из фильтра, которые не имеют каких-либо мер (т.е. . null значения). And this MDX works when i try it in SSMS.

Любые идеи, почему it's not working in PPS?

+0

Это не работает = Значения фильтра также показывают нулевые значения. – user1800552

+0

Вы сравнили полный оператор или просто фрагменты утверждений между PPS и SSMS? Полный отчет представляет много контекста, что чрезвычайно важно в MDX. Чтобы действительно помочь вам, нам нужно было бы увидеть полную инструкцию MDX. – FrankPl

+0

выберите [Меры]. [ASD] на 0, nonemptycrossjoin ( [DCode]. [DCode] .children), [SAMPLECODE]. [SAMPLECODE] .members) от р Я считаю, что суть этого запроса в формуле соединения? – user1800552

ответ

1

Если это то же самое заявление MDX, которое ведет себя по-разному в зависимости от среды (SSMS против PPS) на одном и том же кубе, тогда я могу только представить, что параметры соединения или некоторые настройки сеанса повлияют на результат.

Тем не менее, NonEmptyCrossJoin является deprecated since SQL Server 2005. Вместо того, чтобы использовать эту функцию, вы можете использовать NON EMPTY оси модификатор и обычный крест присоединиться, в сокращенном виде * следующим образом:

select [Measures].[ASD] on 0, 
     non empty 
     [DCode].[DCode].children * [SAMPLECODE].[SAMPLECODE].members 
     on 1 
    from p 

EDIT

As - в соответствии с вашим комментарием - вы получите сообщение об ошибке сообщение для не пустой, я попробовал его на Adventure Works в AS2008R2, и следующий запрос работает отлично:

select [Measures].[Internet Sales Amount] on 0, 
     non empty 
     [Customer].[Country].children * [Customer].[Gender].members 
     on 1 
    from [Adventure Works] 

Таким образом, я предполагаю, у вас есть ошибка в Translat иона между указанным выше запросом и вашим реальным запросом. Я не смогу найти это, не увидев ваш оригинальный запрос!

+0

не может действительно использовать этот код в PPS: «Parser: Синтаксис для« non »неверен». говорит профайлер сервера ... – user1800552

+0

Тогда, возможно, вы можете использовать функцию 'NonEmpty': Это будет' NonEmpty ([DCode]. [DCode] .children * [SAMPLECODE]. [SAMPLECODE] .members) ' – FrankPl

+0

Или , можете ли вы использовать версию Analysis Services до 2005 года? Тогда я не буду вам помогать, поскольку я никогда не работал с версией, которая была старой. – FrankPl

Смежные вопросы