Я хотел бы сделать что-то вроде этого (TSQL):SSAS MDX расчет фильтра
select saldi
where rek in (4,8)
and rek5 <> 41111
and rek3 not in (a,b,c)
После MDX, фильтр (4,8) <> 41111, не работает. Если я удалю фильтр 41111, мера будет работать нормально, просто появится 4/8. Добавление 41111 в качестве фильтра «<>» и результат пуст, а не 0,00.
THIS = IIF(
([Rekeningen].[Rek n1].CurrentMember = [Rekeningen].[Rek n1].&[4]
or [Rekeningen].[Rek n1].CurrentMember = [Rekeningen].[Rek n1].&[8])
and [Rekeningen].[Rek n5].CurrentMember <> [Rekeningen].[Rek n5].&[41111]
,
[Measures].[Saldi], 0.00
);
Я пробовал Google, но, похоже, не получил правильное ключевое слово. На social.msdn.microsoft.com много реакций отмечены как ответ, но не для меня так далеко. Развертывание ssas-куба работает отлично, никаких ошибок.
Может ли кто-нибудь указать мне в правильном направлении? Я пробовал Except, но эта команда, похоже, не работает с многоуровневыми полями (rek3/rek5).
Спасибо за подробный ответ. @whytheq Получил ошибки разбора, если это не «НЕ»? Отметьте это как ответ, потому что разрешил проблему, однако она не выполняла функционально то, что я хотел в кубе. Я переосмыслить и перефразировать мой вопрос и опубликовать новый. –
@FabioBruna извиняется за ошибки синтаксического анализа - я отредактировал ответ. Да, я довольно часто получаю mdx, который работает нормально, но не возвращает число, которое я ожидаю: обычно я потом разбивал скрипт на гораздо меньшие куски и тестировал их, чтобы увидеть, какие данные они возвращают ... затем увеличивайте сложность больше .. пока «ведет себя», как ожидалось. – whytheq