2012-02-29 8 views
0

このシナリオは一般的です。ユーザーはスプレッドシートをテーブルにインポートするように求めます - マスターテーブル。MS Accessで不正なインポートデータの検証

Mastertableには、ProviderIDのacctとFKのPKがあります。

重要な違反によってレコードの約10%が失われます。これは、存在しないproviderIDを指定したことによるものだと思います。

悪いプロバイダIDを特定できる方法はありますか?私は新鮮な表にインポートすることができます - 「MasterTableNew」が、私はこのような選択を行うとき:それは空白のターンアップ

SELECT acct FROM MastertableNew 
WHERE NOT EXIST (
    SELECT Mastertable.acct 
    FROM Mastertable 
    INNER JOIN MastertableNew 
    ON Mastertable.acct = MastertableNew.acct) 

- 私はMastertableに存在しないMastertableNewに存在する行を見て期待しています。

答えて

1

方法について:

SELECT acct FROM MastertableNew 
LEFT JOIN Mastertable ON MastertableNew.acct = Mastertable.acct 
WHERE Mastertable.acct Is Null 
+0

MEH。 "タイプミスマッチの式"これは私の正確なクエリです(ここでは別のテーブルを使用していますが、概念はまったく同じです).SELECT CDNew.acct、CDNew.ID CDNew LEFT JOINからCDNew [acct] = ChartDetail。[acct] WHERE(((ChartDetail.acct)Is Null)); – Rob

+0

上記を無視して、acctをテキストフィールドとしてインポートしました。既存のテーブルと一致させるには、数値でなければなりません。これはうまく動作します、ありがとう! – Rob