很高兴写出了一个存储过程的核心,请提批评意见
--- 感谢 tj_dns(愉快的登山者)、myflok(阿棋)
---- 功能 -----
---- 依当前时间为起点,未来某个时间为终点,每间隔10分钟显示
---- 房间的占用和预约数量
delete roomtemp ---- 删除表中所有记录
declare @subno char(2)
declare @stardate datetime
declare @enddate datetime
declare @stepdate datetime
declare @sumqty int ---- 房间总数
declare @useqty int ---- 占用房间
declare @resqty int ---- 预约房间
set @subno='01'
set @stardate = '2003-6-12 9:00'
set @enddate = '2003-6-13 1:00'
set @stepdate = @stardate
select @sumqty=count(*) from room
where subno=@subno
if @sumqty is null
set @sumqty=0
while @stepdate <= @enddate
begin
set @stepdate = dateadd(minute, 10, @stepdate)
----- 正在占用的房间总数 ----------
select @useqty=count(*) from view_RoomFreeTime
where (substring(roomno,1,2)=@subno) and freetime > @stepdate
if @useqty is null
set @useqty=0
----- 预约房间总数 ----------
select @resqty=sum(roomqty) from view_RoomReserve
where substring(reserveno,1,2)=@subno and
arrivetime<=@stepdate and leavetime>=@stepdate
if @resqty is null
set @resqty=0
---- 插入记录 --------
insert RoomTemp(Stepdt,sumqty,usedqty,reseqty,freeqty)
values (@stepdate,@sumqty,@useqty,@resqty,@sumqty - @useqty - @resqty)
end -- end while