我有兩個供應商數據庫,這些數據庫在多年來我已經嘗試糾正,已經變得非常不可靠。單個客戶可以有多個id_numbers
,這兩個ID存在於兩個供應商數據庫中。單個客戶的所有ID都正確地附加到Vendor1
數據庫中的一個客戶記錄(這意味着它們屬於相同的customer_code
)。但是,問題是這些相同的ID可能會在Vendor2
數據庫中的多個客戶之間分配,這是不正確的。我需要將這些多個客戶合併到Vendor2
數據庫中。找到一條記錄,作爲另一個供應商數據庫中的兩條記錄存在
我試圖確定哪些客戶在第二個供應商數據庫中表示爲兩個或更多客戶。到目前爲止,我已將兩者加在一起,但我無法弄清楚如何僅找到具有兩個或多個不同的MemberInternalKeys
的客戶,以獲得相同的customer_code
。
這是我到目前爲止有:
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'
在下面的例子中,我希望在表中只能拿回的最後兩行。前兩行不應包含在結果中,因爲它們對於兩個記錄具有相同的MemberInternalKey
,並且屬於相同的customer_code
。第三行也不應該包含,因爲兩個供應商數據庫之間有1-1匹配。
customer_code | id_number | MemberInternalKey
--------------|-----------|------------------
5549032 | 4000 | 4926877
5549032 | 4001 | 4926877
5031101 | 4007 | 2379218
2831779 | 4029 | 1763760
2831779 | 4062 | 4950922
任何幫助,非常感謝。