注册 登录
编程论坛 SQL Server论坛

跪求SQL2000一存储过程!

yiliu126 发布于 2008-09-24 10:47, 772 次点击
如:表PZA中有以下两段或两段以上的票据号码:
起始号    截止号   份数
  15       19       5

  21       24       4
......

写一SQL2000的存储过程,结果是将以上的票段分解成每一张票据,并储到别外一个表PZB中,结果如下:
票证号码:
15
16
17
18
19
21
22
23
24


谢谢,各位大侠啦!
3 回复
#2
ting47632008-09-24 11:36
--测试表
create table pza(起始号 int, 截止号 int, 份数 int)
create table pzb (票证号码 int)
--测试数据
insert into pza
select 15, 19, 5 union all
select 21, 24, 4


--存储过程
create PROCEDURE tt
as
declare @iB int, @iE int
declare cb cursor for
select 起始号,截止号 from pza
open cb
fetch next from cb into @iB, @iE
while (@@fetch_status <> -1)
begin
    while @iB < @iE+1
    begin
        insert into pzb values (@iB)
        set @iB = @iB + 1
    end
fetch next from cb into @iB, @iE
end
close cb
deallocate cb

--执行
exec tt

--查询结果
select * from pzb

--结果如下
票证号码
15
16
17
18
19
21
22
23
24
#3
yiliu1262008-09-24 11:54
我爱编程有错吗!
谢谢!非常感谢!!
#4
freele_china2008-09-24 13:52
逛逛,支持一下
1