我正在处理我正在导入MS Access的Excel电子表格。它们包括客户名称,出生日期,一些其他个人信息和订单信息。相同的客户通常拥有多个独特的订单。我正在创建一个只是唯一客户端的表(稍后我将链接到订单表),因此当我从Excel导入数据时,我想删除重复的客户端记录,保留一个。我想在姓名和出生日期上与他们匹配。我遇到的问题是某些客户端名称是完全不匹配的字符串。
例如:
Name DOB
---- ---
DOE,JOHN 1/1/1960
DOE,JOHN L 1/1/1960
JOHNSON,PAT 12/1/1945
SMITH,BETTY 2/1/1935
在上面的集合中,我想将其限制为仅三个记录,并删除多余的John Doe记录。
我基本上只希望在空格之前查看客户端名称。 我不会反对完全失去中间的首字母,所以如果有一种方法可以把它砍掉,那也行得通。我怎样才能做到这一点?
答案 0 :(得分:0)
听起来你最简单的选择就是切断任何中间人。
您需要按以下方式处理。
完成所有操作后使用选择DISTINCT并说。
如果您使用InStr函数Syntax HERE,则可以在名字后面搜索空格。
然后您可以选择仅使用左侧功能选择左侧的内容(左侧减去1以不包括空格)。如果找不到空格,你会发现错误,所以add和iif语句只输出名称。
在查看数据之后,您需要删除第1列(在下面的示例中)以及将Expr1代码直接插入到iif语句中,因此最后您将只有两列: DOB和Expr2(或重命名AS名称)
以下是一个例子:
SELECT DISTINCT
Table1.Name,
Table1.DOB,
InStr(1,[Table1].[Name]," ",1) AS Expr1,
IIf([expr1]>0,Left([Table1].[Name],[Expr1]-1),[Table1].[Name]) AS Expr2
FROM Table1;
韦恩打败了我......