2014-10-29 85 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

我从做了什么,我需要我们的软件供应商查询它要做的。他们的解决方案是上述两种建议的组合。它创建一个临时表,以便将具有多个名字姓氏的匹配的帐户,然后通过检查匹配的地址,州,城市来评估它们重复的可能性。它还记录了每个帐户上次使用的时间。

我不完全理解语法,但没关系,它完成了工作。

感谢您的帮助!