我正在尝试使用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 :(得分:0)
问题可能是因为您的tblQuotedItems
与Select Query
返回的列数不同。
因此,要解决此问题,您可以在INSERT语句中指定单个列,这将解决您的问题。
答案 1 :(得分:0)
如果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;