1

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

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

有 178'205条tbl_Toyota2012记录...查询结果返回 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);

谁能告诉我为什么会发生这种情况?

4

1 回答 1

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

于 2013-02-08T11:56:51.313 回答