简单的 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 个表/查询