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