日期:2014-05-18  浏览次数:20530 次

如何写这样的存储过程?
车次表   busNum
车次           起点             终点
101                 a                   c
102                 b                   d    

车站表station
站号             站名
1                   a        
2                   b
3                   c  
4                   d

bus表
              自动编号         车次             站名      
                          1             101               1
                          2             101               2
                          3             101               3
                          4             102               2
                          5             102               3
我想通过两个参数   (作为起始点   和终止点)
选择出   经过该站点的车次(及该车次经过的所有的站点)    
这样的   写存储过程该怎么写?     还有就是如果没有通过两个站的公交车次   就转乘   ..
有思路的给个思路也行     谢谢

------解决方案--------------------
----老大的例子--

CREATE TABLE T_Line(
ID nvarchar(10), --公交线路号
Station nvarchar(10), --站点名称
Orders int) --行车方向(通过它反应每个站的上一个、下一个站)
INSERT T_Line
SELECT N '8路 ' ,N '站A ',1 UNION ALL
SELECT N '8路 ' ,N '站B ',2 UNION ALL
SELECT N '8路 ' ,N '站C ',3 UNION ALL
SELECT N '8路 ' ,N '站D ',4 UNION ALL
SELECT N '8路 ' ,N '站J ',5 UNION ALL
SELECT N '8路 ' ,N '站L ',6 UNION ALL
SELECT N '8路 ' ,N '站M ',7 UNION ALL
SELECT N '20路 ' ,N '站G ',1 UNION ALL
SELECT N '20路 ' ,N '站H ',2 UNION ALL
SELECT N '20路 ' ,N '站I ',3 UNION ALL
SELECT N '20路 ' ,N '站J ',4 UNION ALL
SELECT N '20路 ' ,N '站L ',5 UNION ALL
SELECT N '20路 ' ,N '站M ',6 UNION ALL
SELECT N '255路 ',N '站N ',1 UNION ALL
SELECT N '255路 ',N '站O ',2 UNION ALL
SELECT N '255路 ',N '站P ',3 UNION ALL
SELECT N '255路 ',N '站Q ',4 UNION ALL
SELECT N '255路 ',N '站J ',5 UNION ALL
SELECT N '255路 ',N '站D ',6 UNION ALL
SELECT N '255路 ',N '站E ',7 UNION ALL
SELECT N '255路 ',N '站F ',8
GO

--乘车线路查询存储过程
CREATE PROC p_qry
@Stati