2012-07-11 52 views
0

这个问题类似于这里的stackoverflow,但它确实不同。如何将2个Access查询中的4列合并到3个单一查询列中?

我想将两个不同的查询合并成一个查询。每个查询都有2列。以下是一些示例数据。

Query #1 
Country | Quantity 
USA  | 312 
Canada | 513 
Mexico | 258 

Query #2 
Country | Quanity 
USA  | 425 
UK  | 394 
Mexico | 489 

然后最终的查询需要这个样子......

Country | Query#1 | Query #2 
USA  | 312  | 425 
Canada | 513  | 0 
UK  | 0  | 394 
Mexico | 258  | 489 

空的人可以为空白,或0不要紧。

看起来好像我需要使用FULL OUTER JOIN或其他影响,但Access没有FULL OUTER JOIN。

我试图使用联合查询,但我不明白他们足够好,以实现这一点。任何帮助深表感谢!

+1

什么是查询? – Matthew 2012-07-11 15:35:46

+0

他在标题中提到了MSAccess,因此Query1和Query2可能保存了查询。在MSAccess世界中,他们的工作方式就像是视图... – 2012-07-11 15:45:09

+0

每个查询都非常复杂,因为它从几个地方提取信息。每个查询(#1和#2)中都有另一列是供应商。并通过放置标准线来获得正确的数字。不知道是否清楚或不... – Elmer 2012-07-11 15:45:26

回答

-1

您想创建一个查询来加入其他两个查询。为了从两个查询中获得零(或零),您需要具有包含所有国家/地区的表格和/或查询。然后,您可以外部连接到其他两个表(假设国家表/查询称为国家/地区):

SELECT Country.Country, Query1.Quantity, Query2.quantity 
FROM Country 
LEFT OUTER JOIN Query1 ON Query1.Country = Country.Country 
LEFT OUTER JOIN Query2 ON Country.Country = Query2.Country 
+0

如果你想要空白值,那么你需要有一个表/查询,只是列出了国家,然后你可以将Query1和Query2外连接到国家表所以你可以得到空白值。 – 2012-07-11 15:38:42

+0

这很接近,但看起来我需要一个OUTER JOIN而不是INNER JOIN。但是,如果我用OUTER或FULL或FULL OUTER替换INNER,则会引发错误? – Elmer 2012-07-11 15:52:02

+0

我不相信MS Access会进行完整的外连接。你可以做一个LEFT OUTER JOIN,但是这只会让你从1个查询中得到空白值。否则,您将拥有国家/地区列表,然后将Query1和Query2的OUTER JOIN添加到国家/地区表/查询中。 – 2012-07-12 02:15:31

相关问题