2014-01-31 72 views
0

我可能只是很累,但我似乎無法弄清楚發生了什麼。我有兩個疑問。查詢1有10個字段。查詢2有5個字段。字段1到3在兩個查詢中都是相同的。我正在嘗試編寫一個選擇查詢,並將查詢2中的字段5簡單添加到查詢1,因此我的結果應該是具有其他字段(查詢2.字段5)的查詢1。選擇查詢有意外的多個記錄(MS Access)

我加入了這兩個查詢的前三個字段,並選擇查詢1中的所有記錄以及只匹配查詢2中的所有記錄。我不知道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); 
+1

可以返回多個記錄你請出示你的查詢? –

+0

顯示您的表格結構並指明它們的基數。哪些是兩個表的主鍵。 –

+0

嗨,謝謝你的回覆。代碼已添加。這些不是表格,而是查詢的查詢。只有供應商ID是源表中的主鍵...其他字段不是,但我可以將其更改爲使用ID而不是名稱。 – user3203169

回答

0

這很可能是因爲[供應商風險分數查詢]中有多個記錄與[部分收入公開收入查詢P1]中的條件相匹配。即,如果對應於一個記錄[零件收入暴露查詢P1]與值:

DivisionName =「TestDiv」,供應商ID = 1,CommodityName =「TestCommodity」

可以存在在[賣方風險評分的多個記錄查詢]與值

DivisionName = 'TestDiv',供應商ID = 1,CommodityName = 'TestCommodity'

那麼它將比裸露查詢P1的記錄在[零件收入數]

+0

Swagata,你贏得了獎品!謝謝。我認爲是理所當然的(因爲我很匆忙),底層表中的數據沒有任何重複的記錄。再次感謝你。 – user3203169

0

檢查您加入條件。

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

供應商爲供應商正確嗎?

你說前三個字段是一樣的。但它只顯示兩個相同。

+0

嗨,狡猾。是的,他們是一樣的。 – user3203169

+0

但它們是不同的名稱。這就是我問的原因。 –

+0

是的,它們的命名方式與不同的表格不同,但在原始表格中是一對多的。 – user3203169