2013-02-08 58 views
1

我在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); 

誰能告訴我爲什麼會發生?

回答

4

如果tbl_Toyota2012與您加入的兩個表格(PriceCodes和tbl_NWGW_Key)之間存在多於1:1的關係,則會發生這種情況,因爲會有更多的行。

即如果對於tbl_Toyota2012中的每個條目,在PriceCodes或tbl_NWGW_Key中有幾個條目。

爲了回答您的評論:

如果你有一個表「父」是連接到餐桌「兒童」有兩個孩子的父母將返回多行。

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

這可能會返回:

[Parent Name], [Child Name]

Bob, Susan

Bob, David

+0

感謝您的回答...有沒有辦法來過濾表,以便我能看到這些重複的行? – rohrl77 2013-02-08 12:20:33

+0

只是爲了仔細檢查。你的意思是我在'tbl_Toyota2012'中有一個記錄,'PriceCodes'中有匹配,'tbl_NWGW_Key'中有另一個記錄,但它們不在一行顯示? – rohrl77 2013-02-08 12:22:51

+0

沒錯,是的。我會編輯我的答案,以舉例。 – GrandMasterFlush 2013-02-08 12:23:58