访问union all到新表

时间:2018-02-16 13:38:19

标签: ms-access-2013 union-all

我有一个联合的保存查询(MyUnion),附加每月文件(链接视图):

select * from RawTrade1801
union all
select * from RawTrade1802

尝试将此内容写入新表格证明存在问题:

SELECT MyUnion.* into RawTrade2
FROM MyUnion
WHERE Field8 = 'ZAR';

我收到错误:无法打开数据库“

我的目标是每月一次通过附加每个月份文件来创建一个主表。

2 个答案:

答案 0 :(得分:1)

以下步骤应从您的UNION查询生成一个表:

  1. 创建一个新查询。在“ SQL视图”中,现在键入:
SELECT * FROM (SELECT * FROM RawTrade1801
UNION ALL
SELECT * FROM RawTrade1802);
  1. 保存查询。在其设计视图中,单击“制作表”按钮。输入您希望此查询的输出为的表名(例如NewTable)。
  2. 保存并关闭查询。
  3. 查询图标将更改。双击它,它应该会生成您的表。

访问实际上将SQL更改为

SELECT * INTO NewTable FROM
(SELECT * FROM RawTrade1801
UNION ALL
SELECT * FROM RawTrade1802) AS [%$##@_Alias];

在步骤4之后查看SQL时。

答案 1 :(得分:0)

尝试使用INSERT INTO ... SELECT

INSERT INTO RawTrade2
SELECT * FROM RawTrade1801 WHERE Field8 = 'ZAR'
UNION ALL
SELECT * FROM RawTrade1802 WHERE Field8 = 'ZAR';

当然,即使这样可行,它仍然无法解释为什么原始查询不起作用。我希望这是一个轻微的技术问题,虽然我不知道足够的Access立即看到它。