我有一个数据库,其中包含有关到达/离开车站的公共汽车的信息。在我的应用程序中,我需要显示用户选择的车站的所有发车时间。
这意味着我必须识别通过所选车站的每条线路。我通过以下查询做到了这一点:
SELECT DISTINCT LinePaths.TimetableID
,Lines.LineName AS [Line]
,Timetable.Heading
,LinePaths.Departure
,Regime.Name AS [Regime]
FROM LinePaths
INNER JOIN Timetables ON Timetables.TimetableID = LinePaths.TimetableID
INNER JOIN Lines ON Timetable.LineID = Lines.LineID
INNER JOIN Stations ON LinePaths.Station = Station.StationID
INNER JOIN Regimes ON Timetables.Regime = Regimes.RegimeID
WHERE Station = @Station
问题是Timetable.Heading
我不需要显示公共汽车前往的最后一站的名称。这些是我可以使用的表的架构:
Stations - ID, Name
Lines - LineID, LineName
Timetable - TimetableID, LineID, Heading, Regime
(Regime
定义巴士在哪几天开车)LinePaths - ID, TimetableID, SN, Arrival, Departure, StationID
(这SN
是一个序列号,它定义了特定路径上的站点顺序(总线将按特定顺序到达这些站点)。)
所以,Timetable.Heading
我需要一个Stations.Name
, 而不是我的问题。
该列必须代表公共汽车要去的最终车站(对于每条线路),所以我必须以某种方式识别最终车站(再次对于通过所选车站的每条线路)。为此,我必须使用LinePaths
这张桌子。在该表中,数据按 分组TimetableID
,因此具有相同值的条目按表示公共汽车到达车站顺序TimetableID
的值排序(如下所示:) - 这意味着根据到时间表将到达带有 StationID 的车站,离开在,并且该车站是这条路线上的车站(是 的 ID,对于此查询并不重要)。SN
xxxxx, 1111, 3, 8:15, 8:20, 9999
1111
8:15
9999
8:20
3rd
xxxxx
LinePath
所以,最后,我的问题是 - 我如何使用 SQL 获取以下模式中的数据:
FinalStationName
,Departure(from selected station)
,Regime
.