MS Access 2010查询返回的行数多于表中的行数

时间:2013-02-08 11:53:56

标签: sql ms-access-2010

我在MS Access 2010中有一个查询,它返回的行数多于源表中的行数。

我试图通过简化的示例重新创建正在发生的事情,但无法获得相同的效果。我已经设置了参数,以便包含源表中的所有记录,但只包括那些与其他表匹配的记录。

tbl_Toyota2012有178'205条记录...查询结果返回180'365条记录。

这是我的SQL代码:

SELECT 
   tbl_Toyota2012.[FC-Teile-Nr], tbl_Toyota2012.BEZEICHNUNG, tbl_Toyota2012.PFC, 
   tbl_Toyota2012.PC, tbl_Toyota2012.WARENGRUPPE, tbl_PriceCodes.PRICE_CODE, 
   tbl_PriceCodes.NORMAL_FACTOR, tbl_Toyota2012.EK_NETTO_MANDANT AS EP, 
   tbl_Toyota2012.UPE, tbl_Toyota2012.RABATTSATZ, tbl_NWGW_Key.ZUTEILUNG, 
   tbl_Toyota2012.UMSATZ_2012_UNITS AS [Volumen 2012], 
   [tbl_Toyota2012]![UMSATZ_2012_UNITS]*[tbl_Toyota2012]![UPE]*(1-([tbl_Toyota2012]![RABATTSATZ]/100)) AS NettoUmsatz

FROM 
   (tbl_Toyota2012 
LEFT JOIN 
   tbl_NWGW_Key ON (tbl_Toyota2012.PC = tbl_NWGW_Key.ProdCode) AND (tbl_Toyota2012.PFC = tbl_NWGW_Key.PFC)) 
LEFT JOIN 
   tbl_PriceCodes ON (tbl_Toyota2012.MODELL_ID = tbl_PriceCodes.MODEL_ID) AND (tbl_Toyota2012.PC = tbl_PriceCodes.PROD_CODE) AND (tbl_Toyota2012.PFC = tbl_PriceCodes.PROD_FUNC_CODE);

有人能告诉我为什么会这样吗?

1 个答案:

答案 0 :(得分:4)

如果tbl_Toyota2012与您加入的两个表(PriceCodes和tbl_NWGW_Key)之间的关系超过1:1,则会发生这种情况,因为会有更多行。

即。如果对于tbl_Toyota2012中的每个条目,PriceCodes或tbl_NWGW_Key中有多个条目。

回答你的意见:

如果您有一个表'Parent'加入表'Children',那么有两个孩子的父母将返回多行。

SELECT Parent.Name, Child.Name FROM Parent INNER JOIN Child on Parent.ID = ChildID

这可能会返回:

[Parent Name], [Child Name]

Bob, Susan

Bob, David