楼主: gaoyan_0303

如何实现“查询重复记录”

[复制链接]
论坛徽章:
115
生肖徽章:狗
日期:2007-01-06 21:14:12马上有车
日期:2014-03-06 16:45:08马上加薪
日期:2014-05-09 12:27:582014年世界杯参赛球队: 英格兰
日期:2014-07-03 13:10:44青年奥林匹克运动会-竞技体操
日期:2014-09-10 15:30:57马上有钱
日期:2014-10-31 13:56:48美羊羊
日期:2015-03-04 14:48:582015年新春福章
日期:2015-03-06 11:57:31懒羊羊
日期:2015-04-23 19:26:10金牛座
日期:2015-09-17 08:21:44
11#
发表于 2007-4-19 18:24 | 只看该作者
表的命名是任意的,没有必要"自身比较"
其实我已经给你写好了,在上面,你的是Oracle吧?上面又了

使用道具 举报

回复
论坛徽章:
0
12#
 楼主| 发表于 2007-4-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

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

使用道具 举报

回复
论坛徽章:
115
生肖徽章:狗
日期:2007-01-06 21:14:12马上有车
日期:2014-03-06 16:45:08马上加薪
日期:2014-05-09 12:27:582014年世界杯参赛球队: 英格兰
日期:2014-07-03 13:10:44青年奥林匹克运动会-竞技体操
日期:2014-09-10 15:30:57马上有钱
日期:2014-10-31 13:56:48美羊羊
日期:2015-03-04 14:48:582015年新春福章
日期:2015-03-06 11:57:31懒羊羊
日期:2015-04-23 19:26:10金牛座
日期:2015-09-17 08:21:44
13#
发表于 2007-4-19 18:41 | 只看该作者
[PHP]
create table lccont
(
  ProposalContNo varchar2(10),
  InsuredIDNo    varchar2(18),
  InsuredName    varchar2(20),
  MakeDate       date,
  MakeTime       varchar2(8),
  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]

使用道具 举报

回复
论坛徽章:
115
生肖徽章:狗
日期:2007-01-06 21:14:12马上有车
日期:2014-03-06 16:45:08马上加薪
日期:2014-05-09 12:27:582014年世界杯参赛球队: 英格兰
日期:2014-07-03 13:10:44青年奥林匹克运动会-竞技体操
日期:2014-09-10 15:30:57马上有钱
日期:2014-10-31 13:56:48美羊羊
日期:2015-03-04 14:48:582015年新春福章
日期:2015-03-06 11:57:31懒羊羊
日期:2015-04-23 19:26:10金牛座
日期:2015-09-17 08:21:44
14#
发表于 2007-4-19 18:46 | 只看该作者
这是不是你要的啊?
我的语句的意思是按照你说的那4个字段分组计算记录数,如果这4个字段一样,那么是不是count数超过1了啊?,然后选取count数超过1的那些记录即可

使用道具 举报

回复
论坛徽章:
115
生肖徽章:狗
日期:2007-01-06 21:14:12马上有车
日期:2014-03-06 16:45:08马上加薪
日期:2014-05-09 12:27:582014年世界杯参赛球队: 英格兰
日期:2014-07-03 13:10:44青年奥林匹克运动会-竞技体操
日期:2014-09-10 15:30:57马上有钱
日期:2014-10-31 13:56:48美羊羊
日期:2015-03-04 14:48:582015年新春福章
日期:2015-03-06 11:57:31懒羊羊
日期:2015-04-23 19:26:10金牛座
日期:2015-09-17 08:21:44
15#
发表于 2007-4-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
16#
 楼主| 发表于 2007-4-19 18:50 | 只看该作者
嗯,是这个。你可真逗,谢谢!

使用道具 举报

回复
论坛徽章:
0
17#
 楼主| 发表于 2007-4-19 18:52 | 只看该作者
对,我要的就是上面的内容

使用道具 举报

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

使用道具 举报

回复
论坛徽章:
115
生肖徽章:狗
日期:2007-01-06 21:14:12马上有车
日期:2014-03-06 16:45:08马上加薪
日期:2014-05-09 12:27:582014年世界杯参赛球队: 英格兰
日期:2014-07-03 13:10:44青年奥林匹克运动会-竞技体操
日期:2014-09-10 15:30:57马上有钱
日期:2014-10-31 13:56:48美羊羊
日期:2015-03-04 14:48:582015年新春福章
日期:2015-03-06 11:57:31懒羊羊
日期:2015-04-23 19:26:10金牛座
日期:2015-09-17 08:21:44
19#
发表于 2007-4-19 18:54 | 只看该作者
最初由 gaoyan_0303 发布
[B]对,我要的就是上面的内容 [/B]

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

使用道具 举报

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

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 未成年人举报专区 
京ICP备16024965号-8  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表