【发布时间】:2019-12-24 19:31:04
【问题描述】:
在工作中,我在使用 Microsoft Access 将多个表合并为一个表时遇到问题。所以我拥有的是一个包含多个表的 Microsoft Access DB 文件。
我们可以假设每个表只包含两列。 CustomerID 和 numb_of_purchases。我每个月都有一张表,并且想将所有这些表合并到一张大表中,例如两个月:
TableJan
Customer_ID numb_of_purchases_Jan
1 10
2 53
3 98
4 101
和
TableFeb
Customer_ID numb_of_purchases_Feb
3 86
5 5
应该合并到一个更大的表中,如下所示:
Customer_ID numb_of_purchases_Jan numb_of_Purchases_Feb
1 10 0
2 53 0
3 98 86
4 101 0
5 0 5
你会如何解决这样的问题?起初我认为使用 UNION 函数会很容易,因此我尝试编写以下查询:
SELECT TableJan.Customer_ID, numb_of_purchases_Jan
FROM Table_Jan
UNION
SELECT TableFeb.Customer_ID, numb_of_purchases_Feb
FROM Table_Feb;
执行此查询大致如下:
Customer_ID numb_of_purchases_Jan
1 10
1 0
2 53
2 0
3 98
3 86
4 101
4 0
5 5
所以本质上,与所需输出相比,我缺少一整列,而是将 numb_of_purchases_Feb 的值存储在 numb_of_purchases_Jan-column 中。
如果有人能指出我的 UNION 命令中的任何错误或对给定问题有其他可能更简单的解决方案,我将不胜感激。
【问题讨论】:
-
您的问题完美地说明了数据库未标准化所带来的问题。 support.microsoft.com/en-gb/help/283878/…
-
哦...我看到您从未将以前的问题标记为已回答。请解决这个问题,以表达对那些试图帮助你的人的尊重。