简单的 MS Access SQL UNION ALL;如何包含自动注释列值?

Posted

技术标签:

【中文标题】简单的 MS Access SQL UNION ALL;如何包含自动注释列值?【英文标题】:Simple MSAccess SQL UNION ALL; how to include an automatic annotation column value? 【发布时间】:2019-11-15 10:07:03 【问题描述】:

我正在使用 SQL 语句在 MSAccess 中将数据从两个单独的表(A、B)提取到另一个表(C)中。将两个馈送表(A,B)中的所有列附加到目标表(c)中。为了用馈送源注释数据,我在 (c) 中添加了一个“源”列。此“来源”列中的注释信息不存在于饲喂表中。我希望它根据 SELECT 语句中给出的值写入“源”条目。如果我只加载一个表,这可以正常工作,但是当我使用 UNION ALL 一次加载多个表时它不起作用。下面的代码会导致“源”值的输入提示,该值应用于所有条目。我做错了什么?

INSERT INTO Hist_PO (Plant, Material_No, Date_Delivery, Quantity_Ordered, Quantity_Recieved, Source) SELECT Plant, Material, [Delivery date], [Scheduled Quantity], [Quantity delivered], “” FROM ( SELECT Plant, Material, [Delivery date], [Scheduled Quantity], [Quantity delivered], "Source_A" FROM [Table_A] UNION ALL SELECT Plant, Material, [Delivery date], "Source_B" FROM [Table_B]);

【问题讨论】:

【参考方案1】:

你可以试试下面的查询 - 联合,你的选择语句应该有相同的列数

INSERT INTO Hist_PO (Plant, Material_No, Date_Delivery, Quantity_Ordered, Quantity_Recieved, Source)
SELECT Plant, Material, [Delivery date], [Scheduled Quantity], [Quantity delivered], source 
FROM 
(
SELECT Plant, Material, [Delivery date], [Scheduled Quantity], [Quantity delivered], "Source_A"  as source FROM [Table_A]
UNION ALL
SELECT Plant, Material, [Delivery date],0,0 "Source_B" FROM [Table_B]
)

【讨论】:

【参考方案2】:

我想通了... SAP_Instance 标有 [banana] 条目。

INSERT INTO [Test-Table] ( Material_No, Date_Delivery, SAP_Instance )
SELECT Material, [Delivery date], [banana]
FROM (SELECT Material, [Delivery date], 'SAP_EU' as [banana]

FROM [PO-ME80FN-EU]

UNION ALL

SELECT Material, [Delivery date], 'SAP_NAM'  as [banana]

FROM [PO-ME80FN-NAM]
);

【讨论】:

以上是关于简单的 MS Access SQL UNION ALL;如何包含自动注释列值?的主要内容,如果未能解决你的问题,请参考以下文章

使用 MS Access Union Query 合并 3 个表/查询

MS Access中的简单SQL语句[重复]

偶尔在 MS Access 中工作的简单 SQL 更新语句?

sql MS SQL Union交叉和除外

加入sql还是ms-access?

sql注入入门 之 access常规注入 [ union方式 ]