2009-07-06 29 views
0

我有一個與MAS200數據庫異步工作的Access 2007數據庫。由於各種辦公室政策和繁文tape節,即使ODBC變得容易,我也無法訪問MAS200數據,並且必須將MAS200中的數據轉儲導入到Access中。由於這一點以及報告的運行方式,我偶爾會在轉儲中重複數據。沒有Dupes的表合併

我的解決方案是有一個數據表和一個DUMP表。現在我需要找到正確的查詢來檢查在導入前是否存在來自DUMP的行。

兩個表是這樣的,加上其中的受騙者和轉儲邏輯後填入手動幾個領域做:

DATA ID/DUMP ID 
InvoiceDate 
InvoiceNumber 
CompanyID 
Product 
Description 
SalespersonID 
Quantity 
Cost 
Price 

我的假設是,我可以使用下面的查詢,但它不」 t似乎工作。

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 

回答

0

一位朋友給我寫了一個很好的答案,在我頭上。

INSERT INTO tblDATA (InvoiceDate, InvoiceNumber, CompanyID, Product, Description, SalespersonID, Quantity, Cost, Price) 
SELECT tblDUMP.InvoiceDate, tblDUMP.InvoiceNumber, tblDUMP.CompanyID, tblDUMP.Product, tblDUMP.Description, tblDUMP.SalespersonID, tblDUMP.Quantity, tblDUMP.Cost, tblDUMP.Price 
FROM tblDUMP FULL OUTER JOIN tblDATA ON tblDUMP.InvoiceNumber = tblDATA.InvoiceNumber AND tblDUMP.Product = tblDATA.Product AND tblDUMP.Quantity = tblDATA.Quantity 
WHERE tblDATA.InvoiceNumber IS NULL AND tblDATA.Product IS NULL AND tblDATA.Quantity IS NULL 

注意到語法在Access中不完美。

我發現了一些偉大的研究,導致我明白他的推理在: What is the difference between Left, Right, Outer and Inner Joins? http://www.codinghorror.com/blog/archives/000976.html

現在我需要幫助和語法Access 2007中