Учебно-практическое пособие москва 2017 ббк



Pdf көрінісі
бет175/243
Дата21.07.2022
өлшемі3,05 Mb.
#147663
түріУчебно-практическое пособие
1   ...   171   172   173   174   175   176   177   178   ...   243
Байланысты:
Язык SQL. Базовый курс

WITH ( FORMAT csv );
8.* В тексте главы был приведен запрос, предназначенный для учета числа биле-
тов, проданных по всем направлениям на текущую дату. Однако тот запрос был
рассчитан на одновременное добавление только одной записи в таблицу «Пе-
релеты» (ticket_flights_tmp). Ниже мы предложим более универсальный запрос,
который предусматривает возможность единовременного ввода нескольких за-
писей о перелетах, выполняемых на различных рейсах.
Для проверки работоспособности предлагаемого запроса выберем несколько
рейсов по маршрутам: Красноярск — Москва, Москва — Сочи, Сочи — Москва,
Сочи — Красноярск. Для определения идентификаторов рейсов сформируем
вспомогательный запрос, в котором даты начала и конца рассматриваемого пе-
риода времени зададим с помощью функции bookings.now. Использование этой
функции необходимо, поскольку в будущих версиях базы данных могут быть
представлены другие диапазоны дат.
SELECT flight_no, flight_id, departure_city, arrival_city,
scheduled_departure
FROM flights_v
WHERE scheduled_departure
BETWEEN bookings.now() AND bookings.now() + INTERVAL '15 days'
AND ( departure_city, arrival_city ) IN
( ( 'Красноярск', 'Москва' ), ( 'Москва', 'Сочи'),
179


( 'Сочи', 'Москва' ), ( 'Сочи', 'Красноярск' )
)
ORDER BY departure_city, arrival_city, scheduled_departure;
Обратите внимание на предикат IN: в нем используются не индивидуальные
значения, а пары значений.
Предположим, что в течение указанного интервала времени пассажир плани-
рует совершить перелеты по маршруту: Красноярск — Москва, Москва — Сочи,
Сочи — Москва, Москва — Сочи, Сочи — Красноярск. Выполнив вспомогатель-
ный запрос, выберем следующие идентификаторы рейсов (в этом же порядке):
13829, 4728, 30523, 7757, 30829.


Достарыңызбен бөлісу:
1   ...   171   172   173   174   175   176   177   178   ...   243




©engime.org 2024
әкімшілігінің қараңыз

    Басты бет