Psst.. new poll here.
Psst.. new forums here.
Microsoft is blocking us again (TY IP Reputation!) so just use oauth login instead. :)
Paste
Pasted as SQL by ak ( 14 years ago )
SELECT
row_number() OVER (ORDER BY arrival_time) as row_number, city_name, arrival_time, departure_time
FROM (
SELECT
bus_id, season_id, arrival_time, departure_time, city_name,
max(requested_destination_arrival_time) OVER seasoned_bus_route as requested_destination_arrival_time,
max(requested_origin_arrival_time) OVER seasoned_bus_route as requested_origin_arrival_time
FROM (
SELECT
(CASE WHEN city.name = 'Шаартуз' THEN schedule.arrival_time ELSE NULL END) AS requested_origin_arrival_time,
(CASE WHEN city.name = 'Мургап' THEN schedule.arrival_time ELSE NULL END) AS requested_destination_arrival_time,
bus.id AS bus_id,
city.name AS city_name,
schedule.arrival_time as arrival_time, schedule.departure_time as departure_time, schedule.season_id as season_id
FROM
bus_trip.bus_trip_bus AS bus
JOIN bus_trip.bus_trip_schedule AS schedule ON (schedule.bus_id = bus.id)
JOIN bus_trip.bus_trip_season AS season ON (season.id = schedule.season_id)
JOIN dict.vw_dict_city AS city ON (city.id = schedule.city_id)
WHERE '2012-11-05' BETWEEN season.date_start AND season.date_end
) AS bus_schedule
WINDOW seasoned_bus_route AS (
PARTITION BY bus_id, season_id ORDER BY arrival_time RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING
)
) AS seasoned_bus_route
WHERE
requested_origin_arrival_time IS NOT NULL AND requested_destination_arrival_time IS NOT NULL AND
arrival_time BETWEEN requested_origin_arrival_time AND requested_destination_arrival_time;
Revise this Paste