插入记录到表基于另一个表中的记录值

插入记录到表基于另一个表中的记录值

问题描述:

我试图使用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

问题可能是因为你的tblQuotedItems不具有相同数量的列你的Select Query返回的。

因此,要解决这个问题,你可以指定在INSERT语句为单独的列,这将解决您的问题。

不能指定列中的列名称在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;