免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: tigerfish
打印 上一主题 下一主题

如何实现“查询重复记录” [复制链接]

论坛徽章:
0
11 [报告]
发表于 2007-04-19 18:39 |只看该作者
select ProposalContNo,InsuredIDNo,InsuredName,MakeDate,MakeTime,Operator
   
from Lccont1,Lccont2
where Lccont1.InsuredIDNo=Lccont2.InsuredIDNo
  and Lccont1.MakeDate=Lccont2.MakeDate
  and Lccont1.Operator=Lccont2.Operator

我这样写行吗?
您那里涉及到的函数我不是很清楚,一旦脚本修改的时候我自己都不知道怎么改,所以还是想从简单的内容入手

论坛徽章:
4
处女座
日期:2013-09-01 19:30:07双鱼座
日期:2013-09-28 10:58:45双子座
日期:2014-05-23 08:32:0215-16赛季CBA联赛之八一
日期:2016-04-12 19:55:42
12 [报告]
发表于 2007-04-19 18:41 |只看该作者
[PHP]
create table lccont
(
  ProposalContNo varchar2(10),
  InsuredIDNo    varchar2(1,
  InsuredName    varchar2(20),
  MakeDate       date,
  MakeTime       varchar2(,
  Operator       varchar2(10)
);

insert into lccont values(\'1\',\'330102191005010811\',\'悟空\',to_date(to_char(sysdate,\'yyyy-mm-dd\'),\'yyyy-mm-dd\'),\'15:01:10\',\'100\');
insert into lccont values(\'2\',\'330102191005010811\',\'悟空\',to_date(to_char(sysdate,\'yyyy-mm-dd\'),\'yyyy-mm-dd\'),\'15:01:10\',\'100\');
insert into lccont values(\'3\',\'330101199005010855\',\'八戒\',to_date(to_char(sysdate,\'yyyy-mm-dd\'),\'yyyy-mm-dd\'),\'18:01:10\',\'200\');

commit;

SQL> select * from lccont;

PROPOSALCO INSUREDIDNO        INSUREDNAME          MAKEDATE  MAKETIME OPERATOR
---------- ------------------ -------------------- --------- -------- ----------
1          330102191005010811 悟空                 19-APR-07 15:01:10 100
2          330102191005010811 悟空                 19-APR-07 15:01:10 100
3          330101199005010855 八戒                 19-APR-07 18:01:10 200

select ProposalContNo,
       InsuredIDNo,
       InsuredName,
       MakeDate,
       MakeTime,
       Operator
from   (select ProposalContNo,
               InsuredIDNo,
               InsuredName,
               MakeDate,
               MakeTime,
               Operator,
               count(*) over (partition by InsuredIDNo,MakeDate,MakeTime,Operator) record_count
        from   lccont)
where  record_count>=2;

SQL>
PROPOSALCO INSUREDIDNO        INSUREDNAME          MAKEDATE  MAKETIME OPERATOR
---------- ------------------ -------------------- --------- -------- ----------
1          330102191005010811 悟空                 19-APR-07 15:01:10 100
2          330102191005010811 悟空                 19-APR-07 15:01:10 100



2rows
[/PHP]

论坛徽章:
4
处女座
日期:2013-09-01 19:30:07双鱼座
日期:2013-09-28 10:58:45双子座
日期:2014-05-23 08:32:0215-16赛季CBA联赛之八一
日期:2016-04-12 19:55:42
13 [报告]
发表于 2007-04-19 18:46 |只看该作者
这是不是你要的啊?
我的语句的意思是按照你说的那4个字段分组计算记录数,如果这4个字段一样,那么是不是count数超过1了啊?,然后选取count数超过1的那些记录即可

论坛徽章:
4
处女座
日期:2013-09-01 19:30:07双鱼座
日期:2013-09-28 10:58:45双子座
日期:2014-05-23 08:32:0215-16赛季CBA联赛之八一
日期:2016-04-12 19:55:42
14 [报告]
发表于 2007-04-19 18:48 |只看该作者
这样看得明白么?我上面的语句就是把按照你说得4个字段分组统计记录数后,把记录数>1的记录都列出来了,
[PHP]
SQL> select ProposalContNo,
  2                 InsuredIDNo,
  3                 InsuredName,
  4                 MakeDate,
  5                 MakeTime,
  6                 Operator,
  7                 count(*) over (partition by InsuredIDNo,MakeDate,MakeTime,Operator) record_count

  8          from   lccont;

PROPOSALCO INSUREDIDNO        INSUREDNAME          MAKEDATE  MAKETIME OPERATOR   RECORD_COUNT
---------- ------------------ -------------------- --------- -------- ---------- ------------
3          330101199005010855 八戒                 19-APR-07 18:01:10 200                   1
1          330102191005010811 悟空                 19-APR-07 15:01:10 100                   2
2          330102191005010811 悟空                 19-APR-07 15:01:10 100                   2


3ROWS
[/PHP]

论坛徽章:
0
15 [报告]
发表于 2007-04-19 18:50 |只看该作者
嗯,是这个。你可真逗,谢谢!

论坛徽章:
0
16 [报告]
发表于 2007-04-19 18:52 |只看该作者
对,我要的就是上面的内容

论坛徽章:
0
17 [报告]
发表于 2007-04-19 18:52 |只看该作者
你这样写很专业,我那种就很业余了。但是,我很想知道我那种写法对不对,有什么问题,麻烦您指教一下吧

论坛徽章:
4
处女座
日期:2013-09-01 19:30:07双鱼座
日期:2013-09-28 10:58:45双子座
日期:2014-05-23 08:32:0215-16赛季CBA联赛之八一
日期:2016-04-12 19:55:42
18 [报告]
发表于 2007-04-19 18:54 |只看该作者
最初由 gaoyan_0303 发布
[B]对,我要的就是上面的内容 [/B]

那就好,那俺打球去了啊,88

论坛徽章:
0
19 [报告]
发表于 2007-04-19 18:55 |只看该作者
其实这个系统是开发商做的,这个问题就算是一个Bug吧,老板让我把重复记录筛选出来,单独在做一个页面把结果显示出来,估计以后就让我负责改进这个系统了。

论坛徽章:
0
20 [报告]
发表于 2007-04-19 18:55 |只看该作者
先别走,我的问题还没回答完呢
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP