[求助]两个头疼了几天的问题? 大家帮我看看? 谢谢!!
做一个C#的应用程序,主要是实现 火车票的查询功能,数据库是MSSQL,库有两张表,结构如下:
表 1: 线路详细信息表(记录每个车次的途径详细信息)
结构说明: CID(主键约束), TrainID(列车编号), NumStation(途径站点编号,每站递增1), CityName(途径站名称)
ArrivalTime(该站发车时间), LeaveTime(该站离开时间), Distance (途径路程),TotalTime(耗费时间)
表2: 起始站详细信息(记录所有的车次的始发站,和终点站)
结构说明:ID(自动编号),TrainID(列车编号),StartName (始发站),TerminalName(终点站),TotalDistance(线路总长)
问题1: 现在想查询任意两地之间所有列车的详细信息情况(譬如说 从 天津到合肥 )
需要显示的格式如下: 列车编号,起点站(天津),本站到达时间,本站发车时间,抵达站(合肥),抵达站时间,两地之间的距离,列车的始发站,列车的终点站,.....
现在我的代码如下:
SELECT DISTINCT (Train.TrainID),Line.CityName,
'合肥'AS 抵站,Line.ArrivalTime,Line.LeaveTime,
Train.StartName,Train.TerminalName,Train.TotalDistance AS 总里程
FROM TrainInfo,LineInfo WHERE Train.TrainID = Line.TrainID
AND CityName = '天津'
AND LineInfo.TrainID IN (SELECT TrainID FROM LineInfo WHERE CityName = '合肥')
此方法只能显示上车地点(天津)的车次时间,到达合肥的时间,还有两地之间的总里程数,我实在是不知道该如何查询,如果用变量,在程序后台很不方便,不知道有没有别的方法能够实现呢??
问题2: 如果任意两地(数据库存在)不存在直接到达的车次,查询出所有的可用中转站点.
我的代码如下:(譬如说,北京到 虎林市)
select distinct cityname from lineinfo where trainid in
(select trainid from lineinfo where cityname='北京'and
trainid in (select trainid from lineinfo where cityname in
(select cityname from lineinfo where trainid in
(select trainid from lineinfo where cityname='虎林'))))
这么查询结果正确吗?