私はすでに質問Deleting duplicate records using a temporary tableをチェックアウトしてきた、それはかなりこの質問で私を支援するために十分行っていません。複数のフィールドを使用してテーブルから重複レコードを抽出するにはどうすればよいですか?
私はSQL 2000 Serverの上でホストされている約20万のアドレス位置のテーブルを持っています。このテーブルは、長年にわたり様々な関係者からの無効な入力によって引き起こされたテーブル内の重複データに大きな問題を抱えています。重複しているレコードのリストを出力して、それらを整理するための長いプロセスを開始する必要があります。
だから、次の表の構造を考える:私も道も大きく悪夢になるだろう、まだタイプミスやスペルのバリエーションを気にするつもりはありません最初の解析のために
Table Company(
CompanyId NVarChar(10) Not Null Constraint PK_Locations Primary Key,
CompanyName NVarChar(30),
CompanyAddress NVarChar(30),
CompanyCity NVarchar(30),
CompanyState Char(2),
CompanyZip NVarChar(10),
DateCreated DateTime,
LastModified DateTime,
LastModifiedUser NVarChar(64)
)
をそのIまだ解決についての最初の手がかりを得ていない。レコードが複数のレコードには、以下の条件に一致したときに、重複すると考えられているこの部分については、これ
:(会社名またはCompanyAddress)とCompanyCityとCompanyState
ジップが除外されているので、理由場所の多くは郵便番号が紛失しています。多くの場所が誤って入力されています。
都市内の単一の住所に複数の企業が合法的に存在する可能性があることは、単一の市町村内の企業[正直言ってマクドナルドなど]そして州(例えば、ショッピングモールやオフィスビルの中)であるが、今のところ、これらは少なくともあるレベルの人間の注意を保証し、それらを報告書に含めると考える。
1つのフィールドの一致はケーキですが、複数のフィールドにアクセスしたときには、特に条件付きのフィールドがある場合は元に戻ります。
リストされたすべての複製が必要です。削除キューにまっすぐに置かれないので、すべての複製がリストされています。すべての複製が削除される前に、複製から複製までの請求書をマスタレコードにマージする必要があります。 – BenAlabaster
これはSQL 2000 Serverで動作しますか?それは私に次のエラーを与えます: メッセージ156、レベル15、状態1、行1 キーワード 'WITH'の近くの構文が正しくありません。 メッセージ195、レベル15、状態10、行3 'ROW_NUMBER'は認識された関数名ではありません。 – BenAlabaster
いいえ、これはSQL Server 2000では機能しません – Quassnoi