access重复数据累计_Access 查询同一张表中两个或以上字段含有重复项的记录
這篇文章是對(duì)我自己另一篇文章的補(bǔ)充。(
Access 查詢同一張表中某個(gè)字段含有重復(fù)項(xiàng)的記錄)
記錄的動(dòng)力總是來(lái)自于工作中遇到的問(wèn)題。上次只要根據(jù)某個(gè)字段把有重復(fù)項(xiàng)的記錄列出來(lái),這次條件增多了,要根據(jù)兩個(gè)或兩個(gè)以上字段來(lái)判斷,當(dāng)這些字段的值全部相同時(shí),才認(rèn)為出現(xiàn)了重復(fù)記錄。
還是以上次的數(shù)據(jù)為例吧,略有修改。表名 Student
ID
Name
City
Address
1
徐俊
北京
北京市東四北大街520號(hào)
2
王洪濤
北京
北京市西單北大街151號(hào)
3
張立濤
大連
大連市西崗區(qū)新開(kāi)路69號(hào)
4
佘高峰
濟(jì)南
山東省濟(jì)南市濼文路50號(hào)
5
徐俊
上海
上海市靜安區(qū)南陽(yáng)路46號(hào)
6
張忠飛
上海
上海市肇嘉浜路414號(hào)
7
徐俊
上海
上海市乳山路150號(hào)
從城市角度看,一個(gè)城市有很多學(xué)員很正常;中國(guó)人重名的多,單看名字很難說(shuō)是不是同一個(gè)人。這次我們的查詢要結(jié)合“City”和“Name”兩個(gè)字段,只有這兩個(gè)字段的值都相等,我們才進(jìn)一步檢查是不是同一個(gè)人。
先用Access 2003 提供的“查找重復(fù)項(xiàng)查詢向?qū)А鄙梢粋€(gè)查詢看看:
SELECT student.Name, student.City, student.Address
FROM student
WHERE ((student.Name) In (SELECT [Name] FROM [student] As Tmp GROUP BY [Name], [City] HAVING Count(*)>1? And [City] = [student].[city]))
ORDER BY student.Name, student.City
結(jié)果是:
Name
City
Address
徐俊
上海
上海市乳山路150號(hào)
徐俊
上海
上海市靜安區(qū)南陽(yáng)路46號(hào)
注意:徐俊 北京 沒(méi)有列出來(lái),符合我們的預(yù)期,因?yàn)槲覀冞@次是兩個(gè)標(biāo)準(zhǔn)。
不過(guò)我覺(jué)得Access 的向?qū)傻恼Z(yǔ)句有點(diǎn)搞,看上去不是那么一目了然。
這條SQL語(yǔ)句依然用了子查詢“select name from student group by name, city ?having count(*)>1”。這個(gè)子查詢的意思是:把student表里的記錄同時(shí)按名字和城市組合在一起,并把組合后數(shù)量大于1的記錄返回。就這個(gè)例子而言,這條子查詢的返回值是“徐俊/上海”。
但是跟單個(gè)字段查找重復(fù)值不一樣的地方是,這次多了個(gè)“And [City] = [student].[city]”,我們這次的子查詢的全部?jī)?nèi)容是:
select name from student as Tmp group by name, city ?having count(*)>1 And [City] = [student].[city]
這個(gè)子查詢有外部條件,這就讓事情有點(diǎn)復(fù)雜了。在子查詢里使用外部條件,需要對(duì)SQL 語(yǔ)句使用的相當(dāng)熟練和有技巧。
我換了種SQL的寫法來(lái)達(dá)到同樣效果,自己覺(jué)得看上去清晰點(diǎn)。
SELECT student.Name, student.City, student.AddressFROM student? inner join(SELECT Name, city ?FROM student? GROUP BY Name, City ?HAVING Count(*)>1? ) As TmpON? student.Name=Tmp.Name? AND student.city = Tmp.cityORDER BY student.Name, student.City
總結(jié)
以上是生活随笔為你收集整理的access重复数据累计_Access 查询同一张表中两个或以上字段含有重复项的记录的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 1个ieee1394端口_ieee139
- 下一篇: 钉钉提示请勿通过开发者调试模式_钉钉开放