研究一下列车时刻表的后台表结构和常用的查询SQL

        刚开始上班,闲着没什么事情,搞到一份2012年1月1号的列车时刻表数据库,是access版本的,稍后我会给出下载链接,研究了一下表结构,觉得这样的表结构还是比较合理的。于是也考虑了一下大家经常使用的时刻表查询工具的后台SQL实现。我估计大多数的工具比如极品时刻表、路路通时刻表等等,都是这样实现的。首先给出表结构,

基于这样的表结构,给出常用的查询SQL。

--车次查询
select * from train where  id='K7726/K7727';
--车站查询
select * from train where  station='龙家营';
--站站查询
SELECT T1.id, T1.station, t1.d_time, T2.station, T2.a_time,t2.p1-t1.p1 as 票价
FROM train AS T1, train AS T2
WHERE T1.station='龙家营' and T2.Station='邯郸' and T1.S_NO<T2.S_NO and T1.id=T2.id;
--中转查询(邯郸到聊城没有直达车)
select t1.id,t1.station,t2.station,t2.a_time,t3.id,t3.d_time,t4.station,(t2.distance-t1.distance)+(t4.distance-t3.distance) as 总里程
from  train T1,train t2,train t3,train t4
where  T1.station='邯郸'
and    t4.station='聊城'
and    t1.id=t2.id  and t1.s_no<t2.S_No
and    t3.id=t4.id  and t3.s_no<t4.s_no
and    t2.station=t3.station and t3.d_time>t2.A_time
order by  (t2.distance-t1.distance)+(t4.distance-t3.distance) asc;
下面给出数据库的下载链接:

   点击此处到达下载地址

你可能感兴趣的:(sql,数据库,Access,工具)