地铁采用一次换乘到达sql

    技术2022-05-20  45

    实现效果如下:

     

     

     

    --subway_line 表:

     

    CREATE TABLE [dbo].[SUBWAY_LINE]( [SL_ID] [int] IDENTITY(1,1) NOT NULL, [SL_LINE_NAME] [varchar](20) COLLATE Chinese_PRC_CI_AS NOT NULL, [SL_IMG] [varchar](50) COLLATE Chinese_PRC_CI_AS NULL, [SC_ID] [int] NOT NULL, [SC_CITY_NAME] [varchar](20) COLLATE Chinese_PRC_CI_AS NOT NULL, [SL_START_END] [varchar](100) COLLATE Chinese_PRC_CI_AS NULL, [SL_END_START] [varchar](100) COLLATE Chinese_PRC_CI_AS NULL, [SL_CREATE_TIME] [datetime] NULL)

     

    --subway_station表

     

    CREATE TABLE [dbo].[SUBWAY_STATION]( [SS_ID] [int] IDENTITY(1,1) NOT NULL, [SL_ID] [int] NOT NULL, [SS_SEQUENCE] [int] NOT NULL, [SS_STATION_NAME] [varchar](50) COLLATE Chinese_PRC_CI_AS NOT NULL, [SS_UP_STARTTIME] [varchar](20) COLLATE Chinese_PRC_CI_AS NULL, [SS_UP_ENDTIME] [varchar](20) COLLATE Chinese_PRC_CI_AS NULL, [SS_DOWN_STARTTIME] [varchar](20) COLLATE Chinese_PRC_CI_AS NULL, [SS_DOWN_ENDTIME] [varchar](20) COLLATE Chinese_PRC_CI_AS NULL, [SS_IMG] [varchar](50) COLLATE Chinese_PRC_CI_AS NULL, [SS_1_EXIT_NAME] [varchar](20) COLLATE Chinese_PRC_CI_AS NULL, [SS_1_EXIT_BUS_STATION_NAME] [varchar](100) COLLATE Chinese_PRC_CI_AS NULL, [SS_1_EXIT_BUS] [varchar](500) COLLATE Chinese_PRC_CI_AS NULL, [SS_1_EXIT_BUILDING] [varchar](200) COLLATE Chinese_PRC_CI_AS NULL, [SS_2_EXIT_NAME] [varchar](20) COLLATE Chinese_PRC_CI_AS NULL, [SS_2_EXIT_BUS_STATION_NAME] [varchar](100) COLLATE Chinese_PRC_CI_AS NULL, [SS_2_EXIT_BUS] [varchar](500) COLLATE Chinese_PRC_CI_AS NULL, [SS_2_EXIT_BUILDING] [varchar](200) COLLATE Chinese_PRC_CI_AS NULL, [SS_3_EXIT_NAME] [varchar](20) COLLATE Chinese_PRC_CI_AS NULL, [SS_3_EXIT_BUS_STATION_NAME] [varchar](100) COLLATE Chinese_PRC_CI_AS NULL, [SS_3_EXIT_BUS] [varchar](500) COLLATE Chinese_PRC_CI_AS NULL, [SS_3_EXIT_BUILDING] [varchar](200) COLLATE Chinese_PRC_CI_AS NULL, [SS_4_EXIT_NAME] [varchar](20) COLLATE Chinese_PRC_CI_AS NULL, [SS_4_EXIT_BUS_STATION_NAME] [varchar](100) COLLATE Chinese_PRC_CI_AS NULL, [SS_4_EXIT_BUS] [varchar](500) COLLATE Chinese_PRC_CI_AS NULL, [SS_4_EXIT_BUILDING] [varchar](200) COLLATE Chinese_PRC_CI_AS NULL, [SS_5_EXIT_NAME] [varchar](20) COLLATE Chinese_PRC_CI_AS NULL, [SS_5_EXIT_BUS_STATION_NAME] [varchar](100) COLLATE Chinese_PRC_CI_AS NULL, [SS_5_EXIT_BUS] [varchar](500) COLLATE Chinese_PRC_CI_AS NULL, [SS_5_EXIT_BUILDING] [varchar](200) COLLATE Chinese_PRC_CI_AS NULL, [SS_6_EXIT_NAME] [varchar](20) COLLATE Chinese_PRC_CI_AS NULL, [SS_6_EXIT_BUS_STATION_NAME] [varchar](100) COLLATE Chinese_PRC_CI_AS NULL, [SS_6_EXIT_BUS] [varchar](500) COLLATE Chinese_PRC_CI_AS NULL, [SS_6_EXIT_BUILDING] [varchar](200) COLLATE Chinese_PRC_CI_AS NULL, [SS_7_EXIT_NAME] [varchar](20) COLLATE Chinese_PRC_CI_AS NULL, [SS_7_EXIT_BUS_STATION_NAME] [varchar](100) COLLATE Chinese_PRC_CI_AS NULL, [SS_7_EXIT_BUS] [varchar](500) COLLATE Chinese_PRC_CI_AS NULL, [SS_7_EXIT_BUILDING] [varchar](200) COLLATE Chinese_PRC_CI_AS NULL, [SS_8_EXIT_NAME] [varchar](20) COLLATE Chinese_PRC_CI_AS NULL, [SS_8_EXIT_BUS_STATION_NAME] [varchar](100) COLLATE Chinese_PRC_CI_AS NULL, [SS_8_EXIT_BUS] [varchar](500) COLLATE Chinese_PRC_CI_AS NULL, [SS_8_EXIT_BUILDING] [varchar](200) COLLATE Chinese_PRC_CI_AS NULL, [SS_9_EXIT_NAME] [varchar](20) COLLATE Chinese_PRC_CI_AS NULL, [SS_9_EXIT_BUS_STATION_NAME] [varchar](100) COLLATE Chinese_PRC_CI_AS NULL, [SS_9_EXIT_BUS] [varchar](500) COLLATE Chinese_PRC_CI_AS NULL, [SS_9_EXIT_BUILDING] [varchar](200) COLLATE Chinese_PRC_CI_AS NULL, [SS_10_EXIT_NAME] [varchar](20) COLLATE Chinese_PRC_CI_AS NULL, [SS_10_EXIT_BUS_STATION_NAME] [varchar](100) COLLATE Chinese_PRC_CI_AS NULL, [SS_10_EXIT_BUS] [varchar](500) COLLATE Chinese_PRC_CI_AS NULL, [SS_10_EXIT_BUILDING] [varchar](200) COLLATE Chinese_PRC_CI_AS NULL, [SS_CREATE_TIME] [datetime] NULL)

     

     

     存储过程,实现地铁一次换乘查询:

     

     

    alter proc proc_subone(   @start varchar(50),   @end varchar(50))asselect tb.ss_station_name,tb.sl_id as startid,td.sl_id  as endid,tb.sl_line_name as startname,td.sl_line_name as endname from (select ss_station_name,tb.sl_id,sl_line_name from(select * from subway_station where sl_id in (select sl_id from (select * from subway_station where ss_station_name=@start) as ta))as tbinner join subway_line as tc on tb.sl_id = tc.sl_id) as tbinner join(select ss_station_name,te.sl_id,sl_line_name from(select * from subway_station where sl_id in (select sl_id from (select * from subway_station where ss_station_name=@end) as tc))as teinner join subway_line as tf on te.sl_id = tf.sl_id) as tdon tb.ss_station_name = td.ss_station_name group by td.sl_line_name,tb.sl_line_name,tb.sl_id,td.sl_id,tb.ss_station_name

     

    2011-3-1 特此记录。


    最新回复(0)