IT人
相关图书

求一条查询重复记录的SQL语句

所属分类:其他数据库开发 Access
-----------------------------------------

求一条查询重复记录的SQL语句

原表 table :
 字段: z1  z2  z3  z4
 记录1:1   a   b   a
 记录2:2   d   a   b
 记录3:1   a   d   c
 记录4:3   c   b   c
 记录5:5   b   b   a

查询结果:
 字段: z1  z2  z3  z4
 记录1:1   a   b   a
 记录3:1   a   d   c
 记录5:5   b   b   a

说明:查询字段z1有重复记录,或者 z3 z4 同时重复。
也可以理解为:z1没有重重复,且:z3 z4 同时没有重复。




----------------------------------------------------------------------

为什么没有第二条记录?

--------------------------------------------------------

第一条记录,z1没有重复,且z3 z4 没有同时重复。

--------------------------------------------------------

为什么没有第二条记录?
----------
第二条记录,z1没有重复,且z3 z4 没有同时重复。


--------------------------------------------------------

为什么有第三条记录?1、D、C没有重复的记录。

--------------------------------------------------------

为什么有第三条记录?1、D、C没有重复的记录。
---------
第三条 z1有重复记录

--------------------------------------------------------

为什么没有第4条记录?z3 b z4 c
都有重复

--------------------------------------------------------

如上面没有理解错的话:
SELECT A1.* FROM TT A1 LEFT JOIN (
SELECT a.*
FROM ((tt AS a LEFT JOIN (SELECT [z1]
FROM tt
GROUP BY [z1]
HAVING count(*)=1) AS b ON a.z1=b.z1) LEFT JOIN (SELECT [z3]
FROM tt
GROUP BY [z3]
HAVING count(*)=1) AS c ON a.z3=c.z3) LEFT JOIN (SELECT [z4]
FROM tt
GROUP BY [z4]
HAVING count(*)=1) AS d ON a.z4=d.z4
WHERE not isnull(b.z1) and not isnull(c.z3) and not isnull(d.z4)) A2
ON A2.Z1=A1.Z1 AND A1.Z2=A2.Z2 AND A1.Z3=A2.Z3 AND A1.Z4=A2.Z4
WHERE ISNULL(A2.Z1)
相关问题
    Copyright ◎ 1998 - 2007 编程资料网 All Rights Reserved