怎么去掉刷卡重复的数据

pengpeng409 2011-07-21 04:55:43
K07


关联字段 日期 时间 机号
a0188, k0700, k0701, k0702

102 2011-05-07 08:00 2
102 2011-05-07 08:00 2
102 2011-05-07 08:01 2
103 2011-05-07 12:01 3
103 2011-05-07 12:01 3


结果:
102 2011-05-07 08:00 2
102 2011-05-07 08:01 2
103 2011-05-07 12:01 3

...全文
138 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
lanyuxcm 2011-07-25
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 liang145 的回复:]
SQL code

create table #K07
(a0188 int, k0700 datetime, k0701 nvarchar(10), k0702 int) --关联字段 日期 时间 机号
insert #K07
select 102,'2011-05-07','08:00', 2 union all
select 102,'2011-05-07','08:00', 2……
[/Quote]
支持
chuanzhang5687 2011-07-21
  • 打赏
  • 举报
回复
1.select distinct * from tb
2.select * from tb group by a0188,k0700,k0701,k0702 having count(*)>=2
AcHerat 元老 2011-07-21
  • 打赏
  • 举报
回复

--找出重复的记录
select c1,c2,c3,c4
from tb
group by c1,c2,c3,c4
having count(1) > 1

--删除重复记录
select distinct * into #tb
from tb

delete from tb

insert into tb select * from #tb

drop table #tb
liang145 2011-07-21
  • 打赏
  • 举报
回复

create table #K07
(a0188 int, k0700 datetime, k0701 nvarchar(10), k0702 int) --关联字段 日期 时间 机号
insert #K07
select 102,'2011-05-07','08:00', 2 union all
select 102,'2011-05-07','08:00', 2 union all
select 102,'2011-05-07','08:01', 2 union all
select 103,'2011-05-07','12:01', 3 union all
select 103,'2011-05-07','12:01', 3

--求重複
select * from #K07 group by a0188,k0700,k0701,k0702 having count(1)>1
oO寒枫Oo 2011-07-21
  • 打赏
  • 举报
回复

select a0188, k0700, k0701, k0702
from tabname
group by a0188, k0700, k0701, k0702
having count(1)>1
pengpeng409 2011-07-21
  • 打赏
  • 举报
回复
那假设我想找出重复的数据:
效果:
102 2011-05-07 08:00 2
103 2011-05-07 12:01 3
怎么查询 ?
jyh070207 2011-07-21
  • 打赏
  • 举报
回复

select distinct a0188,k0700,k0701,k0702
from k07
liang145 2011-07-21
  • 打赏
  • 举报
回复

create table #K07
(a0188 int, k0700 datetime, k0701 nvarchar(10), k0702 int) --关联字段 日期 时间 机号
insert #K07
select 102,'2011-05-07','08:00', 2 union all
select 102,'2011-05-07','08:00', 2 union all
select 102,'2011-05-07','08:01', 2 union all
select 103,'2011-05-07','12:01', 3 union all
select 103,'2011-05-07','12:01', 3

--樓主是要SELETE 還是DELETE ?
--SELETE
select distinct a0188 , k0700 , k0701 , k0702 from #K07

--a0188 k0700 k0701 k0702
------------- ----------------------- ---------- -----------
--102 2011-05-07 00:00:00.000 08:00 2
--102 2011-05-07 00:00:00.000 08:01 2
--103 2011-05-07 00:00:00.000 12:01 3
--
--(3 row(s) affected)

--DELETE
;with T as(select Row_number()over(partition by a0188 , k0700 , k0701 , k0702 order by getdate()) as num,
a0188 , k0700 , k0701 , k0702 from #K07)
delete T where num<>1

select * from #K07

--a0188 k0700 k0701 k0702
------------- ----------------------- ---------- -----------
--102 2011-05-07 00:00:00.000 08:00 2
--102 2011-05-07 00:00:00.000 08:01 2
--103 2011-05-07 00:00:00.000 12:01 3
--
--(3 row(s) affected)
X_0 2011-07-21
  • 打赏
  • 举报
回复


select distinct a0188,k0700,k0701,k0702
from tb

34,592

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧