不知道你是oracle还是sql server?这个是个自连接问题,先要排序,标行号,再同表的上下行相比,所以是自连接 orcale: select a.vseq,a.declaredate as declaredate1,b.declaredate as declaredate2 from (select vseq,declaredate,rownum as row from mac505 order by vseq,declaredate)a, (select vseq,declaredate,rownum as row from mac505 order by vseq,declaredate)b where a.vseq=b.vseq and a.row+1=b.row and a.declaredate+1000<b.declaredate
sql server由于只有2005以上版本才有row_number()函数,所以如下脚本只能用在2005以上版本中 select a.vseq,a.declaredate as declaredate1,b.declaredate as declaredate2 from (select vseq,declaredate,row_number() orver (order by vseq,declaredate) as row from mac505 )a, (select vseq,declaredate,row_number() orver (order by vseq,declaredate) as row from mac505 )b where a.vseq=b.vseq and a.row+1=b.row and a.declaredate+1000<b.declaredate