sql - 使用 Access 合并两个不同的表
问题描述
我想合并两个具有相似和不同列的不同表。唯一不同的列是:Amount-F21 和 A-21。我的问题是,当我使用 Access 编写 SQL 请求(UNION ALL)时,它会删除 Amount A-21 列,但我需要这个。谢谢。
SELECT * FROM [Source Alloc-A21]
UNION ALL
SELECT * FROM [Source Alloc-F21]
解决方案
要将星号表示法Table.*
与 一起使用UNION
,两个表中的列必须相等。如果不是,您需要选择单个列并为两个表中缺少的列提供默认值。
例如:
SELECT TableA.A, TableA.B, TableA.[Amount-F21], 0 AS [Amount-A21]
FROM TableA
UNION ALL
SELECT TableB.A, TableB.B, 0 AS [Amount-F21], TableB.[Amount-A21]
FROM TableB
这将为任何缺失的列(Amount-F21 或 A-21)报告 0。
然后,您可以对结果求和以隐藏零(默认)值。
SELECT T.A, T.B, SUM(T.[Amount-F21]) AS [Amount-F21], SUM(T.[Amount-A21]) AS [Amount-A21]
FROM (
SELECT TableA.A, TableA.B, TableA.[Amount-F21], 0 AS [Amount-A21]
FROM TableA
UNION ALL
SELECT TableB.A, TableB.B, 0 AS [Amount-F21], TableB.[Amount-A21]
FROM TableB
) AS T
GROUP BY T.A, T.B
推荐阅读
- angular - 角度自定义管道返回表数据错误
- java - Java - 每次循环迭代后累加器变量不递增
- stylesheet - Drupal 8 样式表更改每次都必须重建缓存。有没有更好的办法?
- sql - 如何在 SQL Server 中创建数据集并处理每条记录?
- neo4j - 将 tsv 文件中的选定行导入 neo4j
- node.js - NodeJS - 从 Promise.all 函数返回值时获取“未定义”
- sql - 使用 SQL 从表列解析 XML
- java - 在 Oreo 及更高版本中使用 WorkManager 时是否应该显示持续通知?
- r - 如何将以下数据集合并为独立行?
- scala - Scala,使用 play 2.5 将 joda.LocalDateTime 转换为 json