Связь с таблицей дат с несколькими полями - PullRequest
1 голос
/ 25 июня 2019

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

3 источника данных:

  • Вехи (имеет идентификатор проекта - уникальныйзначения)
  • Отчет - Преимущества (связаны с этапами по идентификатору проекта - дубликаты)
  • Утвержденные сбережения (связаны с этапами по идентификатору проекта 0 дубликатов)

Таблица датбыть связанными с:

Таблица этапов (с помощью поля «Закрыть ДАТУ») Утвержденные сбережения (с помощью поля «Дата утверждения»)

Кроме того, в таблице «Вехи» также есть еще одно поле «Дата», которое я такженужно связать позже.Однако я не могу связать таблицу дат с более чем 1 полем.

enter image description here

1 Ответ

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

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

User removed May from our 'One' Date table on the column Month, so let's remove all May dates from our 'Many' Approved Savings table.

Другим приемлемым использованием отношений является введение второго отношения к тому же столбцу «Многие» в таблице «Одобренные сбережения», но из другой таблицы «Один». (в данном случае Вехи)

User removed May from our 'One' Date table on the column Month, so let's remove all May dates from our 'Many' Approved Savings table. User also chose Mile Stone 445 from the 'One' Milestones table, so let's remove everything but May 2nd from the Date Column on the 'Many' Approved Savings table.

1011 * В качестве альтернативы *

User removed June from our 'One' Date table on the column Month, so let's remove all June dates from our 'Many' Approved Savings table. User also chose Mile Stone 999 from the 'One' Milestones table, so let's remove everything but December 29th from the Date Column on the 'Many' Approved Savings table.

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

Однако в вашем случае вы ввели «двусмысленность», когда PowerBI Engine интерпретирует ваши отношения.

User removed June from our 'One' date table on the column Month, so let's remove all June dates from our 'Many' Approved Savings table AND our 'Many' Milestones table . User also chose Mile Stone 999 from the 'One' Milestones but it doesn't exist because of the Previous relationship.

С другой стороны

The 'One' date table attempts to filter both Milestones and Approved Savings. Date table is sliced to contain set X of dates. Milestones translates that set of X dates in to set of Y Milestones records. Now Approved Savings has Milestones attempting to filter with set Y and the Date table attempting to filter with set X. These are potentially conflicting sets of dates and PowerBI doesn't know which set is valid.

Если вы удалите отношение Таблица дат -> Утвержденные сбережения, вы увидите две вещи:

  • Теперь вы можете установить отношение Таблица дат -> Веха к активному
  • Вы только могли бы установить неактивное отношение для таблицы дат -> Одобренные сбережения (при условии, что вы активировали таблицу дат -> Веха)

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

...