私は訂正しようとしている間にひどく同期していない2つのベンダーデータベースを持っています。単一の顧客に複数のid_numbers
を割り当てることができ、これらのIDは両方のベンダーのデータベースに存在します。 1人の顧客のすべてのIDは、Vendor1
データベースの1つの顧客レコードに正しく添付されています(つまり、同じcustomer_code
に属していることを意味します)。しかし、問題は、同じIDがVendor2
データベース内の複数の顧客に分割されている可能性がありますが、これは間違っています。複数の顧客をVendor2
データベースにまとめてマージする必要があります。別のベンダーデータベースに2つのレコードとして存在するレコードを1つ探します
2番目のベンダーのデータベースで2つ以上の顧客として表される顧客を特定しようとしています。これまでのところ、私は2つを一緒に結合しましたが、同じcustomer_code
の2つ以上の別個の顧客を見つける方法を見つけることはできません。MemberInternalKeys
は、ここで私がこれまで持っているものだ:以下の例では
select top 10
c.customer_code,
i.id_number,
cc.MemberInternalKey
from Vendor1.dbo.customer_info as c
join Vendor1.dbo.customer_ids as i
on c.customer_code = i.customer_code
join Vendor2.dbo.Clubcard as cc
on (i.id_number collate Latin1_General_CI_AS_KS) = cc.ClubCardId
where i.id_code = 'PS'
、私はテーブル内の最後の2行を取り戻すことを期待します。最初の2行は、両方のレコードで同じMemberInternalKey
を持ち、同じcustomer_code
に属しているため、結果に含めないでください。両方のベンダーデータベース間に1-1の一致があるため、3行目も含めないでください。
customer_code | id_number | MemberInternalKey
--------------|-----------|------------------
5549032 | 4000 | 4926877
5549032 | 4001 | 4926877
5031101 | 4007 | 2379218
2831779 | 4029 | 1763760
2831779 | 4062 | 4950922
何か助けていただければ幸いです。