2017-02-08 29 views
0

概述
我在Access數據庫中使用追加查詢將數據從一個表移動到下一個表。如何使附加查詢不會在Access數據庫中追加重複記錄?

Appraoch 我有三個表,二是用於查詢。這兩個表格是「操作和報價」和「工作訂單已激活」,第三個是我正在追加數據的位置,稱爲「工作訂單和操作」。

問題
我successfuly建立追加查詢將記錄添加到anonther表,但它不能去的地方也不會追加重複的記錄點。一旦追加查詢運行一次,我想讓它到哪裏它不會追加這些相同的記錄。我嘗試在crteiria中使用表達式生成器,但沒有運氣。我是SQL新手,它看起來更加緊張,所以我正在弄砸我能做些什麼來使它與SQL而不是表達式生成器一起工作?

代碼

INSERT INTO WorkOrdersAndOperations (WorkOrderID, ProcessID, TimeMin, OperationID) 
SELECT WorkOrdersActivated.WorkOrderID, OperationsAndQuotes.ProcessID, OperationsAndQuotes.TimeMin, OperationsAndQuotes.OperationID 
FROM WorkOrdersActivated, OperationsAndQuotes 
WHERE (((WorkOrdersActivated.WorkOrderID) Not In ([WorkOrdersActivated]![WorkOrderID]))); 

我Where子句是我得不到的東西,我的期望是,如果WorkOrderID已經在WorkOrdersAndOperations表比它應該不追加。如果你現在還不知道,我是SQL新手,所以任何幫助將不勝感激。

回答

1

您可以使用not exists

INSERT INTO WorkOrdersAndOperations (WorkOrderID, ProcessID, TimeMin, OperationID) 
    SELECT woa.WorkOrderID, oq.ProcessID, oq.TimeMin, oq.OperationID 
FROM WorkOrdersActivated as woa, 
    OperationsAndQuotes as oq 
WHERE NOT EXISTS (SELECT 1 
        FROM WorkOrdersAndOperations as woo 
        WHERE woo.WorkOrderID = woa.WorkOrderID AND 
         woo.ProcessID = oq.ProcessID AND 
         woo.OperationID = oq.OperationID 
       ); 
相關問題