如何在SQL Server 2005中选择最接近的匹配项?
技术问答
292 人阅读
|
0 人回复
|
2023-09-12
|
在SQL Server2 }5 u6 ~# q# [ x% q2 B' H! m
在2005年,我有一个成功的销售输入表和包含已知客户及其详细信息的各种表。对于每一行销售,我需要匹配0或1个已知客户。
% y+ U1 J' z: \, n7 ]我们从销售表中获下信息:# M0 n5 i& b/ y; y: ^2 ?/ ]
ServiceId,地址,ZipCode,EmailAddress,HomePhone,FirstName,LastName
$ n. s' o9 P$ F# M8 ~客户信息包括所有这些信息, LastTransaction”日期。
. _! M2 ]. n0 W/ B- I, s7 k这些字段中的任何一个都可以映射回0个或多个客户。我们将匹配数视为销售表中的匹配数ServiceId,Address Q# ^- q0 |$ G3 `8 _9 ]" V
ZipCode,EmailAddress或HomePhone随时与客户完全匹配。
2 L9 ~4 u% v6 _! i问题是我们有很多客户的信息,有时在同一个家庭有很多客户。这意味着我们可能在同一个房间里John Doe,Jane Doe,Jim Doe和Bob* ~0 C5 C i+ f1 B
Doe。都可以Address ZipCode和HomePhone上匹配-也许其中一个以上也可以ServiceId上匹配。
6 v4 o7 x' |( u/ r1 W我需要一些方法来优雅地跟踪交易中客户的最佳匹配。如果一个匹配6个字段,另一个只匹配5个字段,客户应保留为记录的匹配项。如果有多个匹配项5,而没有一个匹配项,则应保留最近的匹配项LastTransaction日期。& U, p U2 X4 t9 s7 `
任何想法都将不胜感激。
/ n1 r2 T) W7 A3 Z) T! h7 B, b更新:更清楚的是,我正在寻找一个很好的方法来验证数据行中数量的完全匹配,并根据信息选择相关行。如果姓氏是* ~5 e' l) m# f+ f k9 Z
Doe它必须与客户姓氏完全匹配,才能算作匹配参数,而不是非常接近的匹配项。
+ `( w. }" _; n1 s8 w- _ z( | ' I* P7 N2 D2 R _; M1 N
解决方案: |
|
|
|
|
|