2014-02-24 26 views
0

我在Access中有兩個表,其中一個本質上是一個包含其個人信息的客戶記錄,另一個充滿有效值,例如狀態縮寫和性別。我試圖比較這兩個表,以便檢查參考表中的性別和州代碼,並提取客戶ID(第一個表中的另一個字段),並通過將客戶ID和值即時通訊使用驗證,在另一個表中。 B ut代替只返回不匹配的值返回第一個表中的每條記錄。所以它沒有真正驗證任何東西,只是複製和粘貼,而不是隻返回第二個表中沒有匹配的值。使用SQL對兩個表進行Access中的數據驗證

我的代碼看起來像這樣

DoCmd.RunSQL 
    "INSERT INTO Issues 
    SELECT Eligibility.ID, Eligibility.[Member Id], Eligibility.[Sex Code], Eligibility.State 
    FROM Eligibility 
    LEFT JOIN Ref ON 
     (Eligibility.[Sex Code]<>Ref.[Sex Code]) AND (Eligibility.State<>Ref.State);" 

回答

1

什麼,你會想要做的,實際上是改變JOIN條款相匹配的Sex CodeState,但只返回不匹配的行。

INSERT INTO Issues 
SELECT Eligibility.ID, Eligibility.[Member Id], Eligibility.[Sex Code], Eligibility.State 
FROM Eligibility 
LEFT JOIN Ref ON 
    (Eligibility.[Sex Code]=Ref.[Sex Code]) AND (Eligibility.State=Ref.State) 
WHERE Ref.[Sex Code] IS NULL 

WHERE Ref.[Sex Code] IS NULL將篩選出的有效行,只返回不符合您的JOIN條件的行。

+0

謝謝,當我第一次看到這是零加法時,我認爲這只是拉任何性別代碼是空的 – user1787114

+0

因爲它是一個'LEFT JOIN',那麼結果行將爲所有'Ref'字段不符合您的'JOIN'條件。 –

相關問題