你好。所以我正在使用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$];
我看到一篇使用 NULL AS 来补偿缺失列的帖子,但一旦我添加它,我就会收到"未检测到列"错误消息。实际上,我正在使用数十张工作表,列范围从 15 到超过 70,行范围从 300。到350k,这就是我使用PowerPivot的原因。
我通过创建与工作表的连接将工作表导入到 PowerPivot。 附言我是 PowerPivot 和查询编辑器的新手。提前感谢您的任何帮助。我会为此使用 Power Query 加载项。 在 Excel 2016 中,Power Query 作为"获取和转换"包含在"数据"功能区中。
连接到数据库并选择 2 个表。 将加载到默认值更改为仅创建连接,然后取消选中将此数据添加到数据模型。 这将创建 2 个查询。
然后,通过右键单击"工作簿查询"窗格中的第一个查询并选择"追加"来创建第三个查询。 选择第二个表,您可能即将完成。查询编辑器将预览结果,您可以根据需要删除或重命名列。
对于第三个查询,将"加载到"设置更改为"仅创建连接",然后选中"将此数据添加到数据模型"。
除了无需编码和维护复杂的 SQL 之外,Power Query 还为数据模型增加了一层绝缘。 您可以自由包含来自其他来源的数据,例如文件,Web服务 - 您不再局限于单个连接。
您应该从第二个选择中删除别名
SELECT tableA.col1, tableA.col2, tableA.col3, NULL AS col4
FROM [tableA$]
UNION
SELECT tableB.col1, tableB.col2, NULL , tableB.col4
FROM [tableB$];