SSIS - 结合重复行

时间:2015-06-30 15:51:30

标签: ssis

我有这个问题,我有一个带有一些重复的平面文件。我不想简单地删除重复项,因为我需要为受影响的重复项组合数据。这里有一些我有的样本数据

User ID             Name                  Home Number         Work Number
  1                 Doe,John              555-555-1212         
  1                 Doe,John                                  888-888-8888
  2                 Doe,Jane              123-456-7890
  3                 Test, User            777-777-7777

我想要做的是组合重复项,以便应用具有相同user_ID的引用主页号和工作号。这是我期望的结果

User ID             Name                  Home Number         Work Number
  1                 Doe,John              555-555-1212        888-888-8888
  2                 Doe,Jane              123-456-7890
  3                 Test, User            777-777-7777

以下是要记住的一些事项

  1. 如上面列出的示例数据所示,并非所有行都是重复的
  2. 我实际上有比上面列出的更多的字段。还有其他数字字段,例如手机号码
  3. 电话号码字段可能不是确切的长度。其中一些可能有括号。
  4. 每个用户的用户ID都是唯一的
  5. 排序转换不会起作用,因为它会删除上面的一个重复项,但我会丢失其中一个字段。我想的可能是模糊查找。但我以前从未使用过它。

    非常感谢任何想法。

1 个答案:

答案 0 :(得分:0)

如果它在数据库中,这会简单得多,但如果你真的,确实你不会有重复,那么你可以做这样的事情:

  • 首先使用平面文件源
  • 读取文件
  • 使用多播将数据拆分为“主”路径加上每个电话号码或您希望合并的其他数据项的数据
  • 在每条路径上使用聚合组件将您的user_ID和其中一个电话号码字段分组。在“主”路径上,只需聚合user_ID和您希望保留的任何其他信息,例如名称。
  • 使用合并连接组件合并不同的路径。请记住使用左连接。
  • 根据需要输出。

如果数据已在数据库中,那么您可以使用一系列查找替换不同的分支(使用select distinct user_ID, phoneNumber from Table