2014-10-29 55 views
0

我一直在打我的頭兩天,我終於承認,我需要幫助做這個看似簡單的任務。搜索重複帳戶

我試圖找到一種方法來在單個表中生成可能的重複帳戶列表。字段與AccountNumberFirstNameLastNameDOBSSNAddressCityStateZip

我需要找到一種方法來查詢數據庫,並發現有不同AccountNumbers但類似names/DOB/etc有可能是同一個人賬戶。

任何幫助將不勝感激。 謝謝!

+0

您能詳細說明您的「類似名稱/ DOB /等」的標準嗎? – 2014-10-29 23:39:50

回答

2
select distinct t1.AccountNumber 
from table t1 
join table t2 on t2.Name = t1.Name and t2.DoB = t1.DoB 
    and t2.AccountNumber <> t1.AccountNumber 
+0

我承認在sql中是一個非常低級的新手,但是這不意味着我在比較兩個表嗎?我只有一個表查看,所以我不明白這個解決方案中的t1和t2引用。如果我有兩張桌子,我可以理解這將如何工作。 – MegaMind 2014-10-30 14:45:53

+0

't1'和't2'可以是同一張表,只是帶有別名。它看起來像'FROM TABLE [table_name] t1 JOIN TABLE [table_name] t2'。 – 2014-10-30 17:23:19

0

看看使用遞歸選擇。這裏有一篇文章。 http://technet.microsoft.com/en-us/library/ms186243(v=sql.105).aspx

基本上,它創建了一個臨時表,允許您在不直接重新查詢數據庫的情況下執行操作。這使您可以更高效地執行多個子選擇。

您的查詢最終會看起來像下面這樣。

隨着帳目(選擇A,B,從表C)

選擇一個,B,C 從表TBL 凡存在(來自賬戶選擇1起作用,其中act.a LIKE '%' + TBL .A +「%」)......

等,瞭解如何檢查是否列就像是另一個檢查更多信息,這一點Compare Columns Where One is Similar to Part of Another

0

我從做了什麼,我需要我們的軟件供應商查詢它要做的。他們的解決方案是上述兩種建議的組合。它創建一個臨時表,以便將具有多個名字姓氏的匹配的帳戶,然後通過檢查匹配的地址,州,城市來評估它們重複的可能性。它還記錄了每個帳戶上次使用的時間。

我不完全理解語法,但沒關係,它完成了工作。

感謝您的幫助!