Объединение таблиц с разным количеством столбцов, некоторые из которых имеют одинаковые имена заголовков

Привет. Итак, я работаю над редактором запросов PowerPivot. У меня есть две таблицы в окне PowerPivot, которые я редактирую с помощью редактора запросов на вкладке свойств таблицы. Таблицы имеют разное количество столбцов, некоторые столбцы имеют общие друг с другом, каждый из которых содержит уникальные столбцы. У столбцов, которые они используют, идентичные имена заголовков. Я хотел бы складывать одну таблицу поверх другой, добавляя новые столбцы в исходную таблицу.

For example:<p></p>
<table><i>TableA</i>
  <th>Col1</th><th>Col2</th><th>Col3</th>
  <tr><td>A</td><td>B</td><td>C</td>
    </tr>
  </table><p></p><table><i>TableB</i>
<th>Col1</th><th>Col2</th><th>Col4</th>
  <tr><td>D</td><td>E</td><td>F</td>
    </tr>
  </table><p></p>
<table><i>Combined</i>
  <th>Col1</th><th>Col2</th><th>Col3</th><th>Col4</th>
  <tr><td>A</td><td>B</td><td>C</td><td>-</td>
    </tr>
  <tr><td>D</td><td>E</td><td>-</td><td>F</td>
    </tr>
  <tr>
    
  </table>
<p></p>

Пример кода:

SELECT tableA.col1, tableA.col2, tableA.col3, NULL AS col4
FROM [tableA$]
UNION
SELECT tableB.col1, tableB.col2, NULL AS col3, tableB.col4
FROM [tableB$];

I saw a post that used the NULL AS in order to compensate for the missing column(s) but once I add it in I get the "no columns detected" error message. In reality I'm working with dozens of sheets with columns ranging from 15 to over70, and rows ranging from 300. to 350k which is why I'm to using PowerPivot.

I imported my sheets to PowerPivot by creating a connection to worksheet.

P.S. Я новичок как в PowerPivot, так и в редакторе запросов. Заранее благодарим вас за любую помощь.


person Brendan    schedule 05.07.2016    source источник


Ответы (2)


Я бы использовал для этого надстройку Power Query. В Excel 2016 Power Query отображается на ленте данных как Получить и преобразовать.

Подключитесь к своей базе данных и выберите 2 таблицы. Измените значение Загрузить в по умолчанию на Только создавать соединение и снимите флажок Добавить эти данные в модель данных. Это создаст 2 запроса.

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

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

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

person Mike Honey    schedule 05.07.2016
comment
Спасибо! Я смог добавить таблицы. Однако возникает вопрос: будет ли соединение также иметь ограничение в один миллион строк, как обычная электронная таблица? Причина, по которой я пытался использовать PowerPivot (помимо анализа данных), заключалась в том, что он мог все мои данные в модели данных. - person Brendan; 06.07.2016
comment
Нет, пока вы не выбрали «Загрузить в / таблицу», она ограничена только обычными ограничениями Power Pivot, то есть доступной памятью, не превышающей примерно 3 ГБ, если вы используете 32-разрядный Office. - person Mike Honey; 08.07.2016

Вы должны удалить псевдоним из второго выбора

SELECT tableA.col1, tableA.col2, tableA.col3, NULL AS col4
FROM [tableA$]
UNION
SELECT tableB.col1, tableB.col2, NULL , tableB.col4
FROM [tableB$];
person scaisEdge    schedule 05.07.2016