插入记录到表基于另一个表中的记录值
问题描述:
我试图使用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)
我应该怎么做我的查询,使之达到理想的结果呢?在此先感谢。
答
问题可能是因为你的tblQuotedItems
不具有相同数量的列你的Select Query
返回的。
因此,要解决这个问题,你可以指定在INSERT语句为单独的列,这将解决您的问题。
答
不能指定列中的列名称在insert
中select
的顺序与表格定义中的顺序相同。可能地,当前引用中的列可能是相同的。如果是这样,这可能工作:
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;
tblQuotedItems表都应具有相同的列中选择查询另有指定特定的列 – HaveNoDisplayName 2014-12-02 23:46:23
工作。问题解决了。非常感谢。 – HelloMoto 2014-12-02 23:58:45