1

我需要在 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  
4

1 回答 1

5

也许你有一个错字,但将一个表连接到自己不需要连接,这应该可以正常工作。在 select 语句上插入时,您不使用 values 关键字。

INSERT INTO CompaniesTable (CompanyName,Description,Website,Email,TypeNumber) 
    SELECT DISTINCT IIF(FIRM_NAME IS NULL, SUBACCOUNT_COMPANY_NAME, FIRM_NAME), 
                    '','','',0 
    FROM qrySummaryData
于 2013-10-25T23:31:08.533 回答