在Access一張表中,姓名是有所重復(fù)的,但是由于重名人太多蚤告,無(wú)法確定所有重復(fù)姓名的人都是同一個(gè)人,因此我們?cè)黾恿艘粋€(gè)字段進(jìn)行匹配:
即属桦,對(duì)于表MRI記錄熊痴,包含字段姓名他爸,年齡聂宾,性別,地址诊笤,身份證號(hào)等系谐,認(rèn)為姓名一致,且年齡一致或地址一致或身份證號(hào)一致(選擇多個(gè)字段是由于有些患者的部分字段無(wú)信息)讨跟,則為同一個(gè)人纪他。
具體的作法是首先用access自帶查詢向?qū)е械腟QL語(yǔ)句,選擇表MRI記錄中晾匠,姓名與年齡一致的所有記錄茶袒,姓名與地址一致的所有記錄及姓名與身份證號(hào)一致的所有記錄,而后使用UNION進(jìn)行合并操作(UNION操作會(huì)去除重復(fù)記錄)凉馆。
Access SQL代碼為:
SELECT *
FROM MRI記錄
WHERE ((MRI記錄.姓名) In
(SELECT [姓名] FROM [MRI記錄](méi) As Tmp GROUP BY 姓名,年齡 having count(*)>1 And [年齡] = [MRI記錄](méi).[年齡]));
union SELECT *
FROM MRI記錄
WHERE ((MRI記錄.姓名) In
(SELECT [姓名] FROM [MRI記錄](méi) As Tmp GROUP BY 姓名,身份證號(hào) having count(*)>1 And [身份證號(hào)] = [MRI記錄](méi).[身份證號(hào)]));
union SELECT *
FROM MRI記錄
WHERE ((MRI記錄.姓名) In
(SELECT [姓名] FROM [MRI記錄](méi) As Tmp GROUP BY 姓名,地址 having count(*)>1 And [地址] = [MRI記錄](méi).[地址]));
缺點(diǎn)是該方法執(zhí)行速度較慢(推測(cè)原因是使用了UNION操作去除重復(fù))薪寓,20,000多條數(shù)據(jù)大概需要五分鐘以上查詢完畢。