将查询结果插入到ms access 2010中的表中

时间:2013-10-25 23:23:50

标签: sql ms-access

我需要在MS Access数据库中将数据从一个模式转换为另一个模式。这涉及编写查询以从旧模式中选择数据,然后将查询结果插入到新模式中的表中。以下是我想要做的一个例子。下面的SELECT组件工作正常,但INSERT组件不起作用。有人可以告诉我如何修复下面的内容,以便它有效地将SELECT语句的结果插入到目标表中吗?

INSERT INTO CompaniesTable 
    (CompanyName) 
    VALUES
    (
        SELECT DISTINCT 
            IIF(a.FIRM_NAME IS NULL, b.SUBACCOUNT_COMPANY_NAME, a.FIRM_NAME) AS CompanyName   
        FROM 
            (SELECT ContactID, FIRM_NAME, SUBACCOUNT_COMPANY_NAME FROM qrySummaryData) AS a
            LEFT JOIN 
            (SELECT ContactID, FIRM_NAME, SUBACCOUNT_COMPANY_NAME FROM qrySummaryData) AS b
            ON a.ContactID = b.ContactID
    );  

目标表(CompaniesTable)的定义是:

CompanyID      Autonumber  
CompanyName    Text  
Description    Text  
WebSite        Text  
Email          Text  
TypeNumber     Number  

1 个答案:

答案 0 :(得分:4)

也许你有一个拼写错误,但加入一个表自己,你不需要加入,这应该工作正常。如果在select语句中使用insert,则不使用values关键字。

INSERT INTO CompaniesTable (CompanyName,Description,Website,Email,TypeNumber) 
    SELECT DISTINCT IIF(FIRM_NAME IS NULL, SUBACCOUNT_COMPANY_NAME, FIRM_NAME), 
                    '','','',0 
    FROM qrySummaryData