首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

sql 相邻记录的不同字段(字段类型为DataTime)相比较解决思路

2012-01-19 
sql 相邻记录的不同字段(字段类型为DataTime)相比较一个A表数据如下:单号送修时间维修完成时间12011-10-92

sql 相邻记录的不同字段(字段类型为DataTime)相比较
一个A表数据如下:

单号送修时间     维修完成时间
12011-10-9       2011-10-28
22011-10-25     2011-10-31
32011-11-16     2011-12-30

第二行的送修时间与第一行的维修完成时间的差,小于或者等于30,就把这条记录显示出来

效果如图:

单号送修时间     维修完成时间
12011-10-9       2011-10-28
22011-10-25     2011-10-31

请教各位大虾指教指教,用sql怎样写才能得到效果图的数据??

[解决办法]

SQL code
create table tb(单号 int,条码 varchar(10),送修时间 datetime,维修完成时间 datetime)insert into tb select 1,'A','2011-10-9','2011-10-10'insert into tb select 2,'A','2011-10-15','2011-10-31'insert into tb select 3,'A','2011-12-16','2011-12-30'insert into tb select 4,'B','2011-9-10','2011-9-15'insert into tb select 5,'B','2011-11-10','2011-11-20'insert into tb select 6,'C','2011-12-1','2011-12-3'insert into tb select 7,'C','2011-12-5','2011-12-6'goselect * from tb a where exists(select 1 from tb where 条码=a.条码 and 单号<>a.单号 and abs(datediff(d,送修时间,a.维修完成时间))<30)/*单号          条码         送修时间                    维修完成时间----------- ---------- ----------------------- -----------------------1           A          2011-10-09 00:00:00.000 2011-10-10 00:00:00.0002           A          2011-10-15 00:00:00.000 2011-10-31 00:00:00.0006           C          2011-12-01 00:00:00.000 2011-12-03 00:00:00.0007           C          2011-12-05 00:00:00.000 2011-12-06 00:00:00.000(4 行受影响)*/godrop table tb 

热点排行