我需要在 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
);
Run Code Online (Sandbox Code Playgroud)
目标表(CompaniesTable)的定义是:
CompanyID Autonumber
CompanyName Text
Description Text
WebSite Text
Email Text
TypeNumber Number
Run Code Online (Sandbox Code Playgroud)
也许你有一个错字,但加入一个表本身你不需要加入,这应该可以正常工作。在 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
Run Code Online (Sandbox Code Playgroud)