Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
БД-Лабораторная работа-Вариант 8-Сараев.docx
Скачиваний:
2
Добавлен:
29.07.2019
Размер:
46.66 Кб
Скачать
  1. Представление "Расписание" (отношение "Маршруты" с указанием времени прибытия).

create or replace view timetable

as select *, r_departure_time + r_travel_time r_avarial_time

from routes;

select *

from timetable;

Результат:

47

Москва

Наро-фоминск

8:30:00

1:42:00

еж.

89.00

10:12:00

57

Наро-фоминск

Москва

18:20:00

1:45:00

еж.

89.00

20:05:00

12

Москва

Апрелевка

9:20:00

0:45:00

вт.

50.00

10:05:00

22

Апрелевка

Москва

11:00:00

0:45:00

чт.

50.00

11:45:00

26

Москва

Бекасово

18:20:00

1:20:00

еж.

76.00

19:40:00

36

Бекасово

Москва

9:30:00

1:20:00

вт.

76.00

10:50:00

100

Алабино

Москва

15:30:00

1:00:00

пт.

100.00

16:30:00

  1. Представление "Средняя загруженность маршрутов": номер маршрута – количество рейсов – количество проданных билетов / количество мест всего.

create or replace view avg_charge_routes

as select t_route, count(t_route), sum(t_sold_tickets)/

(select sum(t_seats)

from trips t1, drivers, transport

where (t_driver = d_id)

and (d_transport = t_number)

and (t1.t_route = t2.t_route)) charge

from trips t2

group by t_route;

select *

from avg_charge_routes;

Результат:

t_route

count

charge

47

7

0.57009345794392523364

12

1

0.94285714285714285714

36

1

0.80898876404494382022

22

1

0.67000000000000000000

26

7

0.84795321637426900585

57

7

0.65086206896551724138

  1. Представление "Рейсы, на которые все билеты проданы".

create or replace view full_solded_trips

as select trips.*

from trips, drivers, transport

where (t_driver = d_id)

and (d_transport = t_number)

and (t_sold_tickets >= t_seats);

select *

from full_solded_trips;

Результат:

t_id

t_route

t_date

t_driver

t_sold_tickets

1

47

2011-08-01

1

47

3

47

2011-08-02

13

39

22

26

2011-08-06

10

140

23

26

2011-08-07

11

100