提取重复记录(用SQL语句实现) (200分)

H

hxw14

Unregistered / Unconfirmed
GUEST, unregistred user!
请问各位大虾:
我想在delphi下用adoquery调用SQL语句实现某一个或某几个,或全部字段相同的记录
全部显示出来,只对单个表。请问谁能实现?请回答,或发E-MAIL给我,hxw14@163.com. 200分哦,快来拿。
比如表TABLE1有4个字段但选择了3个字段,要求这3个字段的记录相同的就提取出来
并且要连第四个字段一起全部显示出来,但如果用某个字段的记录有2个以上为空,其他字段匹配要求的话
,也显示出来,问题清楚了吗 ,显示结果如下:
如: 字段1 字段2 字段3 字段4 | 如果是这样的就不行 字段1 字段2 字段3
aa bb cc d | aa bb cc
aa bb cc d1 | aa bb cc
aa bb cc dd | aa cc cc
abc bbc bb1 qr | aa cc dd
abc bbc bb1 rr | bb cc dd
<null> <null> www e | bb ww dd
<null> <null> www ee | bb ww aa1
在此先谢谢各位大虾。
 
select * from
(select field1,field2.. from tablename having count(*)>1 group by field1,field2..)
 
可以这样,但只对一个字段有用:
select * from table1 where field1 in (select field1 from table1 group by field1
having count(field1)>1) or field1 is null order fields asc
上面这个还可以按升序排序
 
select field1,field2,filed3,field4 from table1 d1 where (select count(*) FROM
TABLE1 d2 where d2.field1=d1.field1 and d2.field2=d1.field2 and d2.field3=d1.field3
and d2.field4=d1.field4)>1
这样是行的,我以前试过,可能有写错,自己核对
 
select * from tablename a,(select field1,field2.. from tablename group by field1,field2..having count(field1)>1) b
where a.field1=b.field1
and a.field2=b.field2
and a.field3=b.field3
.....
 
ugvanxk:
你好!我用查询分析器试过你的语句,运行不能通过。对了我要的是显示全部记录,不光是
选择的那几条记录哦。谢谢!
 
运行都不能通过哦,谢谢!
 
首先你的提问就有些歧义,你能不能对提问做一下修整,
 
好的,那我修正后你们在回答好了。等一下。
 
select * from tablename a,(select field1,field2..count(field1) as nn from tablename group by field1,field2..) b
where a.field1=b.field1
and a.field2=b.field2
and a.field3=b.field3
and b.nn>1
 
多人接受答案: huangyuansj:30分,pengjinlongex: 50分,smallbs:90
ugvanxk:30 但还达不到我所求。谢谢!
 
顶部