Документы по микростратегии — сопоставление разных атрибутов с одним и тем же значением

Я создаю документ с внешним видом, похожим на панель инструментов. Я использую переключатели для выбора года. К сожалению, в одном из моих наборов данных год атрибута является другим атрибутом, даже если он содержит точно такие же значения. Как решить проблему сопоставления атрибутов по их значениям в документах?

В основном я хочу щелкнуть переключатель 2013 и выбрать значение 2013 на графике 1, содержащем атрибут с именем года, и на графике 2, содержащем атрибут с именем год наблюдения.


Я сделал, как ты сказал мне.

Я добавил расширенный фильтр квалификации в отчет, который содержит год наблюдения:

 [Year]@ID = [Obs-Year]@ID

Затем я добавил в отчет год атрибута.

Но когда я пытаюсь выполнить отчет, возникает следующая ошибка:

Отчет: хххххххххх

Работа: 8600588

Статус: Не удалось выполнить

Ошибка: Генерация SQL завершена Ошибка QueryEngine: отчет содержит перекрестное соединение в проходе 1 между таблицами ANSWERS и YEAR. Выполнение прерывается из-за настройки декартового соединения. Ошибка в методе обработки компонента: QueryEngineServer, Project xxxxxx, Job 8600588, код ошибки = -2147212544.

Время начала: 15:13:50


person AndreA    schedule 30.04.2015    source источник


Ответы (1)


Вы не можете... или вы можете попробовать добавить атрибут year в отчет с year-of-observation и поставить фильтр year = year-of-Observation, в этот момент может произойти многое:

  1. Если два атрибута не имеют отношения, таблица поиска для года будет добавлена ​​к вашему запросу отчета в перекрестном соединении, но вы не беспокоитесь, потому что фильтр ограничит результаты правильными.

  2. Если один из атрибутов является родительским для другого, у вас не будет перекрестного соединения, затем удалите фильтр, но дважды проверьте результаты (на всякий случай).

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

Также

Предполагая, что год и год наблюдения не связаны между собой, если они сопоставлены с одним и тем же столбцом поиска в одной и той же таблице (без псевдонимов, без распознавания ролей), MicroStrategy будет использовать только один поиск для обоих атрибутов, поэтому нет необходимости в фильтре. .

Совет

В любом случае, рекомендуется разделять разные логические объекты (например, два атрибута), но (вероятно, не в вашем случае), когда это одно и то же, просто используйте один.

Продвинутый уровень

Другим возможным решением является игра с отношениями: вы можете попытаться сделать год родителем года наблюдения, а затем включить атрибут года в отчет, где он отсутствует, но если это действительно возможно, зависит от вашей схемы, вы могли бы закончить с запутанным иерархическим путем, если у вас уже есть дети для Года и Года наблюдения.

Ошибка перекрестного соединения

Если вы будете следовать решению № 1, вы можете получить сообщение об ошибке, связанное с перекрестным соединением. Это происходит потому, что SQL Engine пытается защитить вас от перекрестных соединений (обычно это плохо).

Чтобы отключить эту ошибку, вам нужно изменить следующее свойство VLDB для отчета (или вы можете изменить его также на уровне проекта, если у вас много отчетов с перекрестным соединением):

VLDB Properties -> Joins -> Cartesian Joins Warning
person mucio    schedule 30.04.2015
comment
Отредактировал вопрос. с ошибкой, которую я получил. Пожалуйста помоги :) - person AndreA; 30.04.2015
comment
Вам необходимо изменить настройку VLDB. я изменил свой ответ - person mucio; 30.04.2015