我目前与第三方进行双向通信,我们经常交换数据。有一个自动过程可以处理数据到数据库的任何变化。问题是CSV用于传输数据并不总是完全相同
发送的数据:
╔═══════════════════╦═════════════╦═════════╦═══════════╦═════════════════╦═════════════╦══════════════╗
║ Unique Identifier ║ Client Name ║ Fund ID ║ Capital ║ Investment Date ║ Mtd. Return ║ Acct. Number ║
╠═══════════════════╬═════════════╬═════════╬═══════════╬═════════════════╬═════════════╬══════════════╣
║ AB10001 ║ John Smith ║ 123 ║ 40,000.00 ║ 9/1/15 ║ 0.95 ║ 123456 ║
║ AB10002 ║ John Smith ║ 221 ║ 50,000.00 ║ 9/1/15 ║ 0.23 ║ 123456 ║
╚═══════════════════╩═════════════╩═════════╩═══════════╩═════════════════╩═════════════╩══════════════╝
收到的数据:
╔═══════════════╦═════════╦═══════════╦═════════════════╦═════════════╦══════════════╗
║ Client Name ║ Fund ID ║ Capital ║ Investment Date ║ Mtd. Return ║ Acct. Number ║
╠═══════════════╬═════════╬═══════════╬═════════════════╬═════════════╬══════════════╣
║ John A. Smith ║ 123 ║ 40,000.00 ║ 9/1/15 ║ 0.84 ║ 123456 ║
║ John A. Smith ║ 221 ║ 50,000.00 ║ 9/1/15 ║ 0.25 ║ 123456 ║
╚═══════════════╩═════════╩═══════════╩═════════════════╩═════════════╩══════════════╝
我发出一个唯一标识符,但第三方不会映射这段数据。因此,它永远不会得到回报。我必须找出一种基于其他列关联这些数据的方法。请记住,此数据在每次传输过程中都有100多个条目,帐号,投资日期,资金和基金ID并不是唯一的。但是,将范围缩小到每个客户端,可以更容易地识别它是什么特定事务。问题是收到的数据(特别是名称)并不总是1比1。如上例所示,John Smith被派出,我收到了John A. Smith。
是否有任何方法可以创建对象,并比较所有不更改的字段(投资日期,资金,资金ID,客户名称,帐号)并创建比较器阈值。即。如果数据是95%匹配,我们可以处理它,否则拒绝它进行手动对帐。