Объединение нескольких таблиц в одну

Завершено

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

  • Существует слишком много таблиц, что затрудняет навигацию по слишком сложной семантической модели.

  • Несколько таблиц имеют аналогичную роль.

  • Таблица содержит только один или два столбца, которые могут поместиться в другую таблицу.

  • Необходимо использовать несколько столбцов из разных таблиц в пользовательском столбце.

Объединить таблицы можно двумя разными способами: объединением и добавлением.

Предположим, что вы разрабатываете отчеты Power BI для отделов продаж и отдела кадров. Они попросили создать отчет с контактными данными, содержащий контактные данные и расположение каждого сотрудника, поставщика и клиента.  Данные находятся в таблицах HR.Employees, Production.Suppliers и Sales.Customers, как показано на следующем изображении.

Однако эти данные поступают из нескольких таблиц, поэтому нужно определить, как объединить данные в нескольких таблицах и создать единую таблицу в качестве источника для отчетов. Встроенные функции Power BI позволяют объединять запросы в одну таблицу.

Добавление запросов

При добавлении запросов вы будете добавлять строки данных в другую таблицу или запрос. Например, у вас может быть две таблицы: одна с 300 строками, а другая с 100 строками, а при добавлении запросов вы получите 400 строк. При слиянии запросов вы будете добавлять столбцы из одной таблицы (или запроса) в другую.  Для объединения двух таблиц нужен столбец, который будет общим для обеих.

Для упомянутого выше сценария вы добавите отдел кадров. Таблица Employees с таблицами Production.Suppliers и Sales.Customers, чтобы у вас был один master списка контактных данных.  Так как вы хотите создать одну таблицу, которая содержит все контактные данные сотрудников, поставщиков и клиентов, при объединении запросов соответствующие столбцы, необходимые для объединенной таблицы, должны иметь одинаковые имена в исходных таблицах данных для просмотра одного объединенного представления.

Перед началом объединения запросов можно удалить из таблиц лишние столбцы, которые не нужны для этой задачи. Чтобы выполнить эту задачу, отформатируйте каждую таблицу, чтобы в ней осталось только четыре столбца с нужными сведениями, и переименуйте их так, чтобы они имели одинаковые заголовки столбцов: идентификатор, компания, имя и телефон.  На следующих изображениях показаны фрагменты переформатированных таблиц Sales.Customers, Production.Suppliers и HR.Employees.

После завершения переформатирования можно объединить запросы. На вкладке ленты Главная в редакторе Power Query выберите раскрывающийся список Добавить запросы. Можно выбрать Добавить запросы как новые (выходные данные добавления приведут к появлению нового запроса или таблицы) или Добавить запросы (строки из существующей таблицы будут добавлены в другую таблицу).

Следующая задача — создать новую главную таблицу, поэтому необходимо выбрать Добавить запросы как новые. Вы перейдете в окно, в котором можно добавить нужные таблицы из раздела Доступные таблицы в раздел Таблицы для добавления, как показано на следующем рисунке.

После добавления нужных таблиц нажмите ОК. Вы будете перенаправлены на новый запрос, содержащий все строки из всех трех таблиц, как показано на следующем рисунке.

Вы успешно создали главную таблицу, содержащую сведения о сотрудниках, поставщиках и клиентах. Можно выйти из редактора Power Query и создать любой отчет на основе этой главной таблицы.

Однако если требуется объединить таблицы, а не добавить данные из одной таблицы в другую, процесс будет отличаться.

Объединение запросов

При слиянии запросов данные из нескольких таблиц объединяются в одну на основе столбца, который является общим для таблиц.  Этот процесс аналогичен предложению JOIN в SQL.  Рассмотрим ситуацию, когда отдел продаж хочет консолидировать заказы и соответствующие сведения (которые в настоящее время находятся в двух таблицах) в одну таблицу. Эту задачу можно выполнить, объединив две таблицы, Orders и OrderDetails, как показано на следующем рисунке. Столбец, который является общим для этих двух таблиц, — OrderID.

Перейдите на вкладку Главная на ленте редактора Power Query и выберите раскрывающийся список Объединить запросы, где можно выбрать Объединить запросы как новые. При выборе этого варианта откроется новое окно, в котором можно выбрать таблицы для объединения из раскрывающегося списка, а затем выбрать столбец, одинаковый для обеих таблиц. В данном случае —orderid.

Кроме того, можно выбрать способ объединения двух таблиц — этот процесс также аналогичен инструкциям JOIN в SQL.  Варианты соединения

  • Левое внешнее — отображает все строки из первой таблицы и только совпадающие строки из второй.

  • Полное внешнее — отображает все строки из обеих таблиц.

  • Внутреннее — отображает совпадающие строки между двумя таблицами.

В этом сценарии используется левое внешнее соединение. Нажмите ОК, чтобы перейти в новое окно, в котором можно просмотреть объединенный запрос.

Теперь можно объединить два запроса или таблицы разными способами, чтобы можно было удобно просматривать данные в зависимости от бизнес-требований.

Дополнительные сведения по этой теме см. в документации Формирование и объединение данных в Power BI.