【公交换乘代码修改】如何限制换乘次数?

sqq4290 2008-05-18
下面是一个名为new_p_qry的存储过程主要是根据输入起点站返回换乘线路
CREATE   proc   new_p_qry    
@begin_state   nvarchar(50), --起点站
@end_state   nvarchar(50)   --终点站
as   
set   nocount   on   
declare   @l   int   
set   @l=0    
select   bus_id,line=cast('('+rtrim(bus_id)+':   '+rtrim(stops)   as   varchar(8000))    
,stops,orderid=orderid+1,level=@l,gid=1   
into   #t   from   BSR   where   stops=@begin_state    
while   @@rowcount>0   and   not   exists(select   *   from   #t   where   stops=@end_state)    
begin   
set   @l=@l+1    
insert   #t(line,bus_id,stops,orderid,level,gid)    
select       
line=a.line+case   
when   a.bus_id=b.bus_id    
then   '->'+rtrim(b.stops)    
else   ')   =>   ('+rtrim(b.bus_id)+':   '+rtrim(b.stops)    
end,    
bus_id=b.bus_id,stops=b.stops,orderid=b.orderid+1,@l,    
case   when   a.bus_id=b.bus_id   then   a.gid   else   a.gid+1   end   
from   #t   a,BSR   b    
where   a.level=@l-1    
and(    
a.bus_id=b.bus_id   and   a.orderid=b.orderid    
or       
a.stops=b.stops   and   a.bus_id<>b.bus_id)    
end   
select   起点站=@begin_state    
,终点站=@end_state    
,转车次数=gid    
,经过站数=case   when   gid<3   then   @l   else   @l-gid+2   end   
,乘车线路=line+')'       
from   #t   where   level=@l   and   stops=@end_state
GO


问题:如何增添一个参数来限制换乘的次数为4以下(包括4次)?
Global site tag (gtag.js) - Google Analytics