У меня есть БД, которая содержит информацию о автобусах, прибывающих в/от станции. В моем приложении мне нужно отобразить все отклонения от станции, которую пользователь выбирает.Комплексная помощь SQL-запросов
Это означает, что я должен идентифицировать каждую линию, проходящую через выбранную станцию. Я сделал это с помощью следующего запроса:
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
(TheSN
является серийный номер, определяет порядок станций по определенным маршрутам (автобус будет поступать на эти станции в этом конкретном порядке).
Итак, вместо Timetable.Heading
мне нужно иметь Stations.Name
, и здесь я прихожу к своей проблеме.
Эта колонка должна представлять конечную станцию, к которой идет автобус (для каждой линии), поэтому мне нужно как-то идентифицировать конечную станцию (снова для каждой линии, проходящей через выбранную станцию). Для этого я должен использовать таблицу LinePaths
. Внутри этой таблицы данные сгруппированы по TimetableID
, так что записи с одинаковым значением для TimetableID
упорядочены по значению SN
, которое представляет порядок, в котором шина поступает на станции (например: xxxxx, 1111, 3, 8:15, 8:20, 9999
) - это означает, что автобус, что диски в соответствии с графиком 1111
прибудет в 8:15
к станции с StationID 9999
, оставить на 8:20
, и что станция является 3rd
один на этом маршруте (The xxxxx
это идентификатор LinePath
, и не имеет значения для этого запроса).
Итак, наконец, мой вопрос - как я могу, используя SQL, получить данные в следующей схеме:
FinalStationName
,Departure(from selected station)
,Regime
.
Что такое РСУБД? SQL Server, MySQL, PostGres, oracle? – JNK
База данных находится на сервере, который использует SQL Server 2008 – NDraskovic