2014-02-13 68 views
3

请非常初级的问题。我有一个简单的脚本,用于查找不同表格中的记录 - 在这种情况下,是指派给患者治疗的医生。由于缺乏数据质量控制,许多记录没有分配正确的医生ID,因此查找返回不匹配的输出。然后我必须为这些记录创建一个虚拟医生。之后,我想将两个记录集合合并为1.SSIS联盟所有不返回所有记录

在我的测试数据库中,我总共有20 599条记录。查找转换返回9 124个提供无匹配输出的记录和11 475个记录。我不明白的是,当我全部加入联盟时,结果总共只有17 885条记录。 (请看下面的截图,问题发生@查找服务医生,然后联盟所有)

以前从未有过这个问题。我在这个脚本的其他部分多次使用相同的技巧,并且它们都返回正确的记录数。任何帮助将不胜感激

Screenshot showing the number of records

+0

这很奇怪。如果你打补丁到SP1,甚至可能到CU8,问题依然存在? – billinkc

+0

我实际上在SP1(11.0.3128.0)开发环境是在SQL Server 2012开发版(64位)上。 Windows 7 X64 Build 7601 SP1 – theUnderdog

+0

极不可能,但如果在查找之前进行行计数转换,每个查找的输出流上有一个,并且在union all之后有一个最后一个,计数是否与GUI显示的内容相匹配? – billinkc

回答

0

你可以不用从查找2条路径。

  1. 您只需在第一个查找窗口中设置为'忽略失败'即可。
  2. 添加 '派生列' 元素,并把这样的事情:

    ServicingDoctor-Replace'ServicingDoctor'-ISNULL(ServicingDoctor)? “NA”:ServicingDoctor