2017-02-05 20 views
0

У меня есть 2 вопроса в конструкторе запросов SSRS для моей табличной модели SSAS. Создать вычисляемый столбец-члены, которые в основном говорит, если этот другой столбец = «Дата последнего счета-фактуры», поставить «Последняя Дата счета-фактуры» в качестве значения, в противном случае, поставить значение другого столбца в «FiscalMonthLastDay»:MDX Help SSRS Query Designer Вычисление выраженного члена оператора и выражения оператора MDX

IIF([Invoice Date].[Relative Date].CurrentMember.MEMBER_CAPTION ="Last Invoice Date", "Last Invoice Date", [Invoice Date].[FiscalMonthLastDay].CurrentMember.MEMBER_CAPTION)

Когда я перетаскиваю это новое поле, он работает, но он создает дополнительные строки в моих результатах. Я добавил до & после снимка экрана (удалены некоторые конфиденциальные данные). Я не могу понять, как заставить его не показывать лишние строки?

До: enter image description here

После:

enter image description here

Мой второй вопрос, я бы тогда хотел фильтровать набор данных только тогда, когда этот новый вычисляемый элемент соответствует другой столбец. Так что я делаю оператор MDX в секции фильтров и думал, что что-то, как это будет работать, но я не могу получить его (ее той же формуле, что и выше):

enter image description here

Если кто-нибудь знает, где получите несколько хороших примеров того, как этот MDX-оператор используется, это было бы здорово!

Спасибо!

+0

Я понял, что могу, возможно, пропустить создание столбца, а затем попытаться отфильтровать этот столбец, если можно сделать оператор OR. Что-то вроде: [Дата счета-фактуры] [Относительная дата] и [Дата последнего счета-фактуры] ИЛИ [Дата счета-фактуры] [FiscalMonthLastDay] [FiscalMonthLastDay] .currentmember.MEMBER_CAPTION = [Дата счета-фактуры] [дата]...... [Дата] .currentmember.MEMBER_CAPTION Я получаю следующее сообщение об ошибке: Функция Axis0 ожидает выражения набора кортежей для аргумента. Использовалось строковое или числовое выражение. Фильтр работает, если я просто делаю первую часть выражения. –

ответ

0

Я не понимаю этого:

[Invoice Date].[Relative Date].CurrentMember.MEMBER_CAPTION ="Last Invoice Date" 

Глядя на ваши шелкографических [Relative Date] является дата - так как может MEMBER_CAPTION быть равен «Дата последнего счета-фактуры»?

+0

Я не уверен, что понимаю это сам! Поле представляет собой динамическое поле, где логика логической модели SSAS заменяет последнюю доступную дату счета (новые счета-фактуры загружаются каждый день) с фразой «Дата последнего счета». Затем мы отфильтровываем отчет до «Дата последнего счета», и отчет всегда будет предоставлять вам последние данные счета. Я собрал логику вместе с очень небольшим расширением MDX. Это почти работает, но не совсем из-за проблемы, с которой я сталкиваюсь. Однако я открыт для любых альтернатив. –

+0

Эта «дата последнего счета» не находится в отпечатках - так что в этих сценариях CurrentMember никогда не «Last Date Invoice». Определение функции currentmember приведено здесь: https://msdn.microsoft.com/en-us/library/ms144948.aspx – whytheq

+0

Да, извините, я должен был объяснить более подробно - дальше вниз в экране набора результатов, есть значения «Дата последнего счета». Мой оператор IIF работает для этих значений, я просто пытался избавиться от строк с помощью NULL в этих мерах. Затем установите результат фильтра так, чтобы он включал только строки, в которых новый вычисляемый элемент равен полю «Относительная дата». –