在一个数据表中怎样查询连续主键编号,例如主键编号是1,2,4,5,7那么1-2是连续的,
4-5是连续的,7是连续的,那么在报表就生成3行,其中起始编号为1-2,3-4,7,应该怎样写
Sql语句或者存储过程?急急急!

解决方案 »

  1.   

    不会,我只会一次一次地取出
    select * from table ORDER BY id DESC LIMIT $i, 2
      

  2.   

    用存储过和游艺机标外理很容易,我有一个类似的例子,你看看,给我分哟,我的等级很低,哈哈。CREATE PROCEDURE mounthdaal
    @begindate char(16),
    @enddate char(16)
    AS
    begin tran
    declare @oldtran_id char(10)
    declare @newtran_id char(10)
    declare @tran_date char(16)
    declare @tran_date_tmp char(16)
    declare @i int
    truncate table tran_old_new
    declare table_cursor cursor
    for
    select tran_id,tran_date from saleinfo
    where tran_date between @begindate and @enddate 
    order by tran_date
    open table_cursor
    fetch table_cursor into @oldtran_id,@tran_date
       set @tran_date_tmp=@tran_date
       set @i=1
       while (@@fetch_status = 0)
         begin
            set @newtran_id=substring(@tran_date,4,1)+substring(@tran_date,6,2)+substring(@tran_date,9,2)+substring(cast(100000+@i as char(6)),2,5)
            insert tran_old_new(oldtran_id,newtran_id,trandate)values(@oldtran_id,@newtran_id,@tran_date)   
            fetch next from table_cursor into @oldtran_id,@tran_date
           if ( substring(@tran_date,1,10)=substring(@tran_date_tmp,1,10))
                  begin
                     set @i=@i+1
                  end
               else
                  begin
                     set @i=1
                  end
            set @tran_date_tmp=@tran_date
         end
       CLOSE table_cursor  DEALLOCATE table_cursor