2014-12-02 116 views
2

我試圖使用Microsoft Access 2013插入記錄到表基於另一個表中的記錄值

目前創建一個報價系統,我的主要問題想寫從選擇所有記錄的查詢一個表(itemquote),它具有與來自另一個表(currentquote)的quoteID匹配的特定quoteID,然後將結果插入到新表(quoteditems)中。

這裏是表的一個基本的例子:

ItemQuote

UniqueID ItemID QuoteID BuyPrice SellPrice 
1   1  1  10.00 11.00 
2   8  2  07.00 14.00 
3   4  5  01.12 03.00 

CURRENTQUOTE

CurrentQuoteID 
1 

我在寫查詢當前的嘗試看起來是這樣的:

INSERT INTO tblQuotedItems 
SELECT * 
FROM tblQuoteAsBuiltAndLabelling 
INNER JOIN tblCurrentQuote 
ON tblQuoteAsBuiltAndLabelling.QuoteID = tblCurrentQuote.CurrentQuoteID; 

生成的錯誤消息是「INSERT INTO語句包含以下未知字段名稱:'CurrentQuoteID'。確保您正確輸入了名稱,並再次嘗試操作「。(錯誤3127)

我應該怎麼做我的查詢,使之達到理想的結果呢?在此先感謝。

+0

tblQuotedItems表都應具有相同的列中選擇查詢另有指定特定的列 – HaveNoDisplayName 2014-12-02 23:46:23

+0

工作。問題解決了。非常感謝。 – HelloMoto 2014-12-02 23:58:45

回答

0

問題可能是因爲你的tblQuotedItems不具有相同數量的列你的Select Query返回的。

因此,要解決這個問題,你可以指定在INSERT語句爲單獨的列,這將解決您的問題。

0

不能指定列中的列名稱在insertselect的順序與表格定義中的順序相同。可能地,當前引用中的列可能是相同的。如果是這樣,這可能工作:

INSERT INTO tblQuotedItems 
    SELECT tblCurrentQuote.* 
    FROM tblQuoteAsBuiltAndLabelling INNER JOIN 
     tblCurrentQuote 
     ON tblQuoteAsBuiltAndLabelling.QuoteID = tblCurrentQuote.CurrentQuoteID; 

不過,我強烈建議你包括列名明確當你插入:

INSERT INTO tblQuotedItems(col1, col2, . . .) 
    SELECT col1, col2, . . . 
    FROM tblQuoteAsBuiltAndLabelling INNER JOIN 
     tblCurrentQuote 
     ON tblQuoteAsBuiltAndLabelling.QuoteID = tblCurrentQuote.CurrentQuoteID; 
相關問題