【发布时间】:2010-11-08 11:24:53
【问题描述】:
我有一个与 MAS200 数据库异步工作的 Access 2007 数据库。由于各种办公室政治和繁文缛节,我无法访问 MAS200 数据,尽管 ODBC 使这很容易,并且必须将数据转储从 MAS200 导入 Access。由于这一点以及报告的运行方式,我偶尔会在转储中出现重复数据。
我的解决方案是有一个 DATA 表和一个 DUMP 表。现在我需要找到正确的查询,在导入之前检查 DUMP 中的行是否存在于 DATA 中。
两个表都是这样的,加上一些在dupe和dump逻辑完成后手动填写的字段:
DATA ID / DUMP ID
InvoiceDate
InvoiceNumber
CompanyID
Product
Description
SalespersonID
Quantity
Cost
Price
我的假设是我可以使用以下查询,但它似乎不起作用。
INSERT INTO tblDATA(InvoiceDate, InvoiceNumber, CompanyID, Product, Description, SalespersonID, Quantity, Cost, Price)
SELECT tblDUMP(InvoiceDate, InvoiceNumber, CompanyID, Product, Description, SalespersonID, Quantity, Cost, Price)
WHERE tblDATA.InvoiceNumber != tblDUMP.InvoiceNumber AND tblDATA.Product != tblDUMP.Product AND tblDATA.Quantity != tblDUMP.Quantity
你能修复我的代码或告诉我更好的路径吗?
编辑!
自从我第一次发布这个问题以来,我的数据库发生了轻微的变化。我正在查看的查询现在是:
INSERT INTO tblSold(InvoiceDate, Invoice, CompanyID, Product, Description, Salesperson, Quantity, Cost, Price)
SELECT tblNewData.InvoiceDate, tblNewData.Invoice, tblNewData.CompanyID, tblNewData.Product, tblNewData.Description, tblNewData.Salesperson, tblNewData.Quantity, tblNewData.Cost, tblNewData.Price
FROM tblNewData FULL OUTER JOIN tblSold ON tblSold.InvoiceNumber = tblNewData.InvoiceNumber AND tblSold.Product = tblNewData.Product AND tblSold.Quantity = tblNewData.Quantity
WHERE tblSold.InvoiceNumber IS NULL AND tblSold.Product IS NULL AND tblSold.Quantity IS NULL
【问题讨论】:
标签: merge ms-access-2007 duplicates