公交查询-获得一次中转车次

本文介绍了一个用于查询中转公交车次的存储过程实现方法。该过程通过输入起点站和终点站名称,检索出所有可能经过这两点的公交线路,并找出共同的中转站点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


--获取一次中转车次
drop proc bus_m_qry
Go
create procedure bus_m_qry
  @station_start varchar(20),
  @station_stop varchar(20)
  --@station_transit varchar(20) --中转
as
  set nocount on
  select s.stationName,s.stationNum into #a from station s
    inner join bus b on b.stationNum=s.stationNum
    where checi in
   (select b.checi from Bus b
   inner join station s
 on s.stationNum=b.stationNum
   where s.stationName=@Station_Start)
    group by s.stationName,s.stationNum order by stationName asc


select stationName into #b from #a a
  inner join bus b on b.stationNum=a.stationNum
  where checi in
   (select b.checi from Bus b
   inner join station s
 on s.stationNum=b.stationNum
   where s.stationName=@Station_Stop)
  group by stationName order by stationName asc

select * from #b
GO
exec bus_m_qry '通利公交公司','鞋城'
Go

表如下

CREATE TABLE [dbo].[Bus] (
 [checi] [char] (10) COLLATE Chinese_PRC_CI_AS NOT NULL ,
 [stationID] [int] NOT NULL ,
 [stationNum] [int] NOT NULL
) ON [PRIMARY]
GO

CREATE TABLE [dbo].[BusNum] (
 [checi] [nvarchar] (20) COLLATE Chinese_PRC_CI_AS NOT NULL ,
 [站点1] [nvarchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
 [站点2] [nvarchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
 [站点3] [nvarchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
 [站点4] [nvarchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
 [站点5] [nvarchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
 [站点6] [nvarchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
 [站点7] [nvarchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
 [站点8] [nvarchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
 [站点9] [nvarchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
 [站点10] [nvarchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
 [站点11] [nvarchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
 [站点12] [nvarchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
 [站点13] [nvarchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
 [站点14] [nvarchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
 [站点15] [nvarchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
 [站点16] [nvarchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
 [站点17] [nvarchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
 [站点18] [nvarchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
 [站点19] [nvarchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
 [站点20] [nvarchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
 [站点21] [nvarchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
 [站点22] [nvarchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
 [站点23] [nvarchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
 [站点24] [nvarchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
 [站点25] [nvarchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
 [站点26] [nvarchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
 [站点27] [nvarchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
 [站点28] [nvarchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
 [站点29] [nvarchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
 [站点30] [nvarchar] (50) COLLATE Chinese_PRC_CI_AS NULL
) ON [PRIMARY]
GO

CREATE TABLE [dbo].[Station] (
 [stationNum] [int] NOT NULL ,
 [stationName] [varchar] (50) COLLATE Chinese_PRC_CI_AS NOT NULL
) ON [PRIMARY]
GO


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值