Welcome, guest! Login / Register - Why register?
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

Your Name: Code Language: