dggh
新新人类
帖子
130
精华
0
无忧币 1085
积分 134
阅读权限 20
|
发表于:2008-3-26 14:09
该回复被 yueyangflash 奖励 40 点无忧币
此回复于2008-04-07 11:19被 yueyangflash 评为最佳答案
要使用自连接。
在sqlserver2005中使用排序函数可以轻松实现:
select a.LastVisitTime,b.LastVisitTime from
(select ROW_NUMBER() OVER(ORDER BY LastVisitTime ASC) AS 'RowNumber',LastVisitTime
FROM tablename ) a,
(select ROW_NUMBER() OVER(ORDER BY LastVisitTime ASC) AS 'RowNumber',LastVisitTime
FROM tablename ) b
where a.RowNumber=b.RowNumber-1 and DATEDIFF(minute,a.LastVisitTime,b.LastVisitTime)>20
--注:在sql server 2000中同样的思路实现可能要用到临时表+identity自增一列来进行
|
 网络虽虚拟,技术无边界,来看看大家“真面目”! |
|
yueyangflash
新新人类
帖子
128
精华
0
无忧币 535
积分 144
阅读权限 20
|
发表于:2008-3-27 12:25
create table tb(时间 datetime)
insert into tb values('2008-03-23 10:10:15.000')
insert into tb values('2008-03-23 10:12:17.000')
insert into tb values('2008-03-23 10:12:33.000')
insert into tb values('2008-03-23 10:13:37.000')
insert into tb values('2008-03-23 10:42:39.000')
insert into tb values('2008-03-23 10:42:41.000')
insert into tb values('2008-03-23 10:43:42.000')
insert into tb values('2008-03-23 10:44:38.000')
insert into tb values('2008-03-23 11:00:05.000')
insert into tb values('2008-03-23 11:01:19.000')
insert into tb values('2008-03-23 11:01:36.000')
insert into tb values('2008-03-23 11:02:11.000')
insert into tb values('2008-03-23 11:23:22.000')
insert into tb values('2008-03-23 11:45:06.000')
go
select m.时间 开始时间 , n.时间 结束时间 from
(select 时间 , px = (select count(*) from tb where 时间 < t.时间) + 1 from tb t) m,
(select 时间 , px = (select count(*) from tb where 时间 < t.时间) + 1 from tb t) n
where m.px = n.px - 1 and datediff(mi , m.时间 , n.时间) > 20
这个语句虽然可以达到我得要求!但是还有一点问题!
create table tb(时间 datetime,编号)
insert into tb values('2008-03-23 10:10:15.000',1)
insert into tb values('2008-03-23 10:12:17.000',1)
insert into tb values('2008-03-23 10:12:33.000',1)
insert into tb values('2008-03-23 10:13:37.000',1)
insert into tb values('2008-03-23 10:42:39.000',1)
insert into tb values('2008-03-23 10:42:41.000',1)
insert into tb values('2008-03-23 10:43:42.000',1)
insert into tb values('2008-03-23 10:44:38.000',1)
insert into tb values('2008-03-23 11:00:05.000',1)
insert into tb values('2008-03-23 11:01:19.000',2)
insert into tb values('2008-03-23 11:01:36.000',2)
insert into tb values('2008-03-23 11:02:11.000',2)
insert into tb values('2008-03-23 11:23:22.000',2)
insert into tb values('2008-03-23 11:45:06.000',2)
我想先查出编号为“1”的所有数据,然后按照这个再行筛选!
谢谢!
|

|
|