Как показать элементы измерения, для которых на самом деле нет значений в многомерном SSAS? - PullRequest
3 голосов
/ 26 апреля 2019

В моем приложении для управления билетами есть две таблицы: " ExpositionPeriods " и " OrganisedVisits ".

ExpositionPeriods - определяет периоды, на которые можно приобрести билеты.

OrganisedVisits - Хранит информацию о приобретенных билетах.

В приведенном ниже примере у нас есть 5 доступных периодов, и билеты были куплены на 2 периода.

enter image description here

Клиенту нужен отчет, в котором указано «Количество посетителей на каждый доступный период». Это означает, что для любого периода, в котором нет посетителя, отчет должен показывать «0» за этот период. Как то так.

enter image description here

Пока все хорошо. Поскольку производственная база данных огромна (~ 500 ГБ), не рекомендуется создавать отчеты по этой базе данных напрямую. Ситуация становится сложной, когда я создаю куб OLAP из этой схемы и пытаюсь достичь той же функциональности отчета в кубе. Кажется, что куб фактически выполняет действие, подобное SQL INNER JOIN, в отличие от LEFT OUTER JOIN, и, следовательно, я не вижу периодов, для которых не проданы билеты.

enter image description here

Так ведет себя SSAS? Я пропускаю какие-либо конкретные настройки, которые будут указывать ядру SSAS на обработку куба другим способом, чтобы включить также пропущенные периоды? Обратите внимание, что конечные пользователи не имеют доступа к сценариям MDX / DAX, они могут использовать куб только путем измерения с помощью перетаскивания и измерения, как в сводной таблице Excel.

Ответы [ 2 ]

1 голос
/ 28 апреля 2019

В вашем изображении браузер выполняет непустые строки в измерении даты. Если вы хотите показывать даты без посетителей, выберите опцию показа пустых ячеек.

0 голосов
/ 06 июня 2019

Вы можете определить такую ​​область в «вычислениях» как

SCOPE 
([Measures].[Visitors]);
THIS=IIF(ISEMPTY([Measures].[Visitors]),0,[Measures].[Visitors]);
END SCOPE;

Таким образом, вместо нулей и побочных эффектов у вас есть нули.Вы или клиент не можете скрыть пустые ячейки, потому что теперь они недостаточно пусты.

...