使用SQL数据库我需要从多个来源为客户端收集数据

时间:2014-04-24 23:55:39

标签: sql sql-server database

我有多个数据库,其中包含我需要在客户端上收集的数据。在没有给出任何具体示例的情况下,由于实际数据的机密性,我将简单地参考字段名称。

我的主表和其他三个表包含以下列 -

Social Security Number, 
Medicare Number, 
Medicaid Number, 
Phone Number, 
Date of Birth, 
Last Name, 
First Name

目标是读取主记录,如果所有指定字段都不包含数据,请查看其他数据源以查看其中一个是否包含缺失数据。

让我告诉你一个问题的例子,看看你能给我什么建议来帮助我实现目标。在我的例子中,我将调用主表表1。

Table 1 - 缺少DOB,SSN& Medicaid#为此记录。
Table 2 - 包含DOB,Medicare#和Last&名字。
Table 3 - 有DOB,医疗补助#,电话号码和最后&名字。
Table 4 - DOB,SSN,Medicare#,电话号码,以及最后&名字。

目前,我正在做以下事情:

我创建了一个名为View 1的视图,将所有表组合在一起。对于不包含该字段的表,这些不常见的字段只是NULL

我为每个所需字段嵌套了case个语句。我查看Table 1中的字段是否为NULL,我开始执行SubSelect语句,在视图1中为每个可能的匹配字段查找匹配记录以及任何要加倍的辅助字段在需要时检查 - 比如我只做DOB和Last&名字匹配。

我有一个临时表,在我再次检查之前会更新结果。我经历了多次,因为第一次通过它可能没有一个字段的命中,但第二次通过它会找到一个匹配。

有没有人看到我所描述的更好的方法呢?

1 个答案:

答案 0 :(得分:0)

这是失去我的部分:

  

我有一个临时表,可以使用之前的结果进行更新   我再次通过检查。我经历了多次   因为第一次通过它可能没有受到打击   领域,但第二次通过它会找到匹配。

如果不这样做,我建议将表格连接到主页,然后使用COALESCE()找到最佳的NOT NULL值。

COALESCE(Table_1.DOB,Table_2.DOB,Table_3.DOB,Table_4.DOB)