回答

收藏

如何在SQL Server 2005中选择最接近的匹配项?

技术问答 技术问答 199 人阅读 | 0 人回复 | 2023-09-12

在SQL Server: ~8 S2 h) \+ J* v, s( C& @. B
在2005年,我有一个成功的销售输入表和包含已知客户及其详细信息的各种表。对于每一行销售,我需要匹配0或1个已知客户。3 z" E/ s( C) S
我们从销售表中获下信息:
( [6 M6 t6 R2 w; a4 R# RServiceId,地址,ZipCode,EmailAddress,HomePhone,FirstName,LastName5 c% b) W  b2 u0 T/ z
客户信息包括所有这些信息, LastTransaction”日期。- X' g* m) S/ n0 s( A
这些字段中的任何一个都可以映射回0个或多个客户。我们将匹配数视为销售表中的匹配数ServiceId,Address  , ?6 t" {7 \( i
ZipCode,EmailAddress或HomePhone随时与客户完全匹配。
1 e( s/ `+ s* j& E) {7 V! q9 }问题是我们有很多客户的信息,有时在同一个家庭有很多客户。这意味着我们可能在同一个房间里John Doe,Jane Doe,Jim Doe和Bob& d9 X. S+ ^+ s( g8 E
Doe。都可以Address   ZipCode和HomePhone上匹配-也许其中一个以上也可以ServiceId上匹配。
+ N: ?4 Y! I: z" ~' ~8 W我需要一些方法来优雅地跟踪交易中客户的最佳匹配。如果一个匹配6个字段,另一个只匹配5个字段,客户应保留为记录的匹配项。如果有多个匹配项5,而没有一个匹配项,则应保留最近的匹配项LastTransaction日期。5 V2 p) z# n8 e9 _
任何想法都将不胜感激。
' Z+ k' P$ ^1 M/ `更新:更清楚的是,我正在寻找一个很好的方法来验证数据行中数量的完全匹配,并根据信息选择相关行。如果姓氏是$ b+ N% O+ T2 K% L
Doe它必须与客户姓氏完全匹配,才能算作匹配参数,而不是非常接近的匹配项。, H7 [- I. B& p7 i( C- U& `0 N
                                                                5 y3 W$ K& Q) T  `
    解决方案:
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则