回 帖 发 新 帖 刷新版面

主题:[讨论]一个新手关于数据库的问题,很简单,请高手帮忙!

我想从数据库的info表中读取数据,用了下面的语句
select 名字,部门,性别,编号,注册时间 from info where 部门=0,性别=0,

现在,我想在读取的时候加一些限制,过滤掉注册时间在5分钟之内的且同时名字和编号完全一样的数据(只读取重复数据中的一个数据)该怎么改啊???

请高手帮忙!!十分感谢!!

回复列表 (共9个回复)

沙发

如果其它的数据有重复,以什么标准选择?比如 名字、编号相同,但性别或者注册时间不相同,选择哪一条?
系统是笨的,需要给明参数才能执行。只要标准明确了,用Group By处理就行了。

板凳

这个问题做不出,期待高手

3 楼

我的意思就是要过滤姓名和编号完全相同,注册时间在5分钟之内的,至于性别其他的都不管,只看姓名和编号,如果5分钟很难,实在行就过滤同1天之内姓名和编号完全相同的业可以!请大家帮忙!谢谢!

4 楼

5分钟其实不难,难就难在它一天有N次出现

5 楼

其实表里面的重复数据都是5分钟之内的,我就是想检索的时候把重复的过滤掉,只显示一次就可以了!我该怎么办啊??

6 楼

select 名字,max(注册时间) from info group by 名字
不就行了

7 楼

具体的样子是这样的
名字|部门|性别|编号|注册时间
甲   |a    |男  |01   |2008-1-14 12:01
乙  |a    |男  |02   |2008-1-14 12:02
甲  |a    |男  |01   |2008-1-14 12:03(重复的)
丙  |b    |男  |03   |2208-1-14 12:05
甲  |a    |男  |03   |2208-1-14 12:05  

我现在要显示
名字|部门|性别|编号|注册时间
甲  |a    |男  |01   |2008-1-14 12:01
乙  |a    |男  |02   |2008-1-14 12:02
甲  |a    |男  |03   |2208-1-14 12:05 

我的查询语句要怎么写啊??

8 楼

declare @t table(名字 char(10),部门 char(10),性别 char(10),编号 char(10),注册时间 datetime)
insert @t select '甲','a','男','01','2008-1-14 12:01'

union all select '乙','a','男','02','2008-1-14 12:02'
union all select '甲','a','男','01','2008-1-14 12:03'
union all select '丙','b','男','03','2008-1-14 12:04'
union all select '甲','a','男','03','2208-1-14 12:05'  

select a.名字,a.部门,a.性别,a.编号,a.注册时间 from @t a ,(select b.编号,max(注册时间) as 注册时间  from @t b  group by b.编号) c
where a.注册时间=c.注册时间 and a.编号=c.编号

9 楼

我认为你把名字列和标号列都建立唯一索引就可以了.不知道我是否理解错了你的用意

我来回复

您尚未登录,请登录后再回复。点此登录或注册