取出两字段同时有相同值的行

xiaowangtian1117 2008-03-21 11:46:42
原表:
name time
a 2008-03-01 02:00
a 2008-03-01 03:00
a 2008-03-01 02:30
b 2008-03-01 02:30
b 2008-03-01 01:00
c 2008-03-01 02:00
c 2008-03-01 02:30

目标表:
name
a
b


即目的要取出表中 name字段相同的行并且时间字段大于1小时
...全文
104 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiaowangtian1117 2008-03-21
  • 打赏
  • 举报
回复
name字段为b的两条记录time字段时间相差1小时,所以符合条件,但是像c的两条记录是不符合条件的
zheninchangjiang 2008-03-21
  • 打赏
  • 举报
回复
还是写错了,....
还有个name=a.name
zheninchangjiang 2008-03-21
  • 打赏
  • 举报
回复
不明白时间字段大于1小时是什么意思
-晴天 2008-03-21
  • 打赏
  • 举报
回复
汗....
深渊的水影 2008-03-21
  • 打赏
  • 举报
回复
并且时间字段大于1小时

时间间隔嘛??

是两个相邻的记录嘛?
-晴天 2008-03-21
  • 打赏
  • 举报
回复
啊!!!
还有时间限制啊~~~~
zheninchangjiang 2008-03-21
  • 打赏
  • 举报
回复
select distinct a.name from tablename a
where exists(select 1 from tablename where abs(datediff(hour,time,a.time))>=1)
zheninchangjiang 2008-03-21
  • 打赏
  • 举报
回复
select distinct a.name from tablename
where exists(select 1 from tablename where abs(datediff(hour,time,a.time))>=1)
深渊的水影 2008-03-21
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 qianjin036a 的回复:]
select distinic name from 原表
[/Quote]

瞎扯。。。
-晴天 2008-03-21
  • 打赏
  • 举报
回复
select distinct name from 原表
-晴天 2008-03-21
  • 打赏
  • 举报
回复
select distinic name from 原表
QQQQAnnie 2008-03-21
  • 打赏
  • 举报
回复
select distinct name from tableName where datediff(hour,getdate(),[time])>1
JiangHongTao 2008-03-21
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 xiaowangtian1117 的回复:]
能讲一下原来吗?
exists(select 1 from tb where a.name = name and datediff(hh,time,a.time)>=1)什么意思?
谢谢!
[/Quote]
是否存在名字相同,但时间间隔在1小时或1小时以上的记录。
xiaowangtian1117 2008-03-21
  • 打赏
  • 举报
回复
能讲一下原来吗?
exists(select 1 from tb where a.name = name and datediff(hh,time,a.time)>=1)什么意思?
谢谢!
JiangHongTao 2008-03-21
  • 打赏
  • 举报
回复
 create table tb(name varchar(10),time  datetime)
insert tb select 'a', '2008-03-01 02:00'
union all select 'a', '2008-03-01 03:00'
union all select 'a', '2008-03-01 02:30'
union all select 'b', '2008-03-01 02:30'
union all select 'b', '2008-03-01 01:00'
union all select 'c', '2008-03-01 02:00'
union all select 'c', '2008-03-01 02:30'
go
select distinct name from tb a where
exists(select 1 from tb where a.name = name and datediff(hh,time,a.time)>=1)

go
drop table tb
/*
name
----------
a
b
*/

34,590

社区成员

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

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