选择查询具有意外的多条记录(MS Access)

时间:2014-01-31 14:30:38

标签: sql ms-access

我可能只是累了,但我似乎无法弄清楚发生了什么。我有两个问题。查询1有10个字段。查询2有5个字段。两个查询中的字段1到3都相同。我正在尝试编写一个select查询并简单地将Query2中的字段5添加到Query1中,因此我的结果应该是带有附加字段的Query1(Query2.field5)。

我从两个查询中加入前3个字段,然后选择query1中的所有记录,只选择query2中匹配的记录。我不知道sql,所以我使用查询设计器。我希望从查询1获得相同数量的记录,但我有3次或更多次。有人能告诉我我做错了什么。我甚至试图扭转连接,但似乎仍然得到相同的额外记录。

提前致谢。

以下是查询:

共同的字段是DivisionNameSupplierID = VendorIDCommodityName

SELECT [Part Revenue Exposed Query P1].DivisionName, 
        [Part Revenue Exposed Query P1].CommodityName, 
        [Part Revenue Exposed Query P1].SupplierName, 
        [Part Revenue Exposed Query P1].PartNumber, 
        [Part Revenue Exposed Query P1].PartDescription, 
        [Part Revenue Exposed Query P1].BUCode, 
        [Part Revenue Exposed Query P1].ProductLine, 
        [Vendor Risk Score Query].VendorScore

FROM [Part Revenue Exposed Query P1] LEFT JOIN [Vendor Risk Score Query] 

ON ([Part Revenue Exposed Query P1].DivisionName = [Vendor Risk Score Query].DivisionName) 
    AND ([Part Revenue Exposed Query P1].SupplierID = [Vendor Risk Score Query].VendorID) 
    AND ([Part Revenue Exposed Query P1].CommodityName = [Vendor Risk Score Query].CommodityName);

2 个答案:

答案 0 :(得分:0)

检查您的加入条件。

   AND ([Part Revenue Exposed Query P1].SupplierID = [Vendor Risk Score Query].VendorID) 

供应商供应商是否正确?

你说前三个字段是相同的。但它只显示两个相同。

答案 1 :(得分:0)

这很可能是因为[供应商风险评分查询]中有多个记录与[部分收入暴露查询P1]中的条件相匹配。即,如果对应于[部分收入暴露查询P1]的一个记录,其值为:

DivisionName ='TestDiv',SupplierID = 1,CommodityName ='TestCommodity'

[供应商风险评分查询]中可以有多个记录值

DivisionName ='TestDiv',SupplierID = 1,CommodityName ='TestCommodity'

然后它将返回比[Part Revenue Exposed Query P1]

中的记录数更多的记录