Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
BD.doc
Скачиваний:
4
Добавлен:
01.03.2025
Размер:
529.41 Кб
Скачать

8) Запросы бд

--1. Выдать список сотрудников администрации с указанием должности.

Select ФИО, Должность

From (Учетные_Данные as У join Лич_Данные as Л on У.Табл_Номер=Л.Табл_Номер) join Отделы as О on У.Код_Отдела=О.Код_Отдела

where Назв_Отдела='администрация'

ФИО

Должность

Баимкин Дмитрий Леонидович

Директор

Фалалеев Максим Борисович

зам. Директора

Андропов Андрей Андреевич

Юрист

Лукашин Алексей Александрович

Диспетчер

Пурко Борис Борисович

Юрист

Ковалева Анастасия Валерьевна

Техничка

Волков Эмир Махмудович

Юрист

Наумов Антон Данилович

Программист

Иванова Светлана Борисовна

Секретарь Отдела

Малютина Тамара Васильевна

Секретарь Директора

--2. Выдать полную информацию о всех автобусах автопредприятия, произведенных в 2006 году.

Select Борт_номер,Гос_Номер,Марка,Модель,Год_выпуска,Пробег,Вместимость

From (Автобусы as А join Вмест_Авто as В on А.Код_Марки=В.Код_Марки)

Where Год_Выпуска='2006'

Order by Марка

Борт_Номер

Гос_Номер

Марка

Модель

Год_Выпуска

Пробег

Вместимость

1234

АТ664

ГОЛАЗ

6228

2006

190000

14

1231

УГ342

ЛИАЗ

5293

2006

290000

11

--3. Показать количество автобусов, которые обслуживают каждый рейс 2012-04-1.

Select Номер_марш, count(Номер_Марш) as Количество_автобусов

From Марш_Лист

Where Дата='2012-04-15'

Group by Номер_марш

Номер_Марш

Количество_Автобусов

101

2

102

2

103

3

104

3

105

3

106

2

--4. Выдать информацию об автобусах, которые работают по 103 маршруту 2012-04-15.

Select Марка, Гос_Номер, А.Борт_Номер

From ((Марш_Лист as М join Экипаж as Э on М.Табл_Номер_Вод=Э.Табл_Номер)

join Автобусы as А on Э.Борт_Номер=А.Борт_Номер) join Вмест_Авто as В on А.Код_Марки=В.Код_Марки

Where Дата='2012-04-15' and Номер_Марш='103'

Group by Марка, Гос_Номер, А.Борт_Номер

Марка

Гос_Номер

Борт_Номер

КАВЗ

АС912

1254

ЛИАЗ

АС065

1183

ПАЗ

АК823

1154

--5. Показать информацию об автобусах и количество выполненных рейсов за апрель.

Select А.Гос_Номер, В.Марка, sum(Кол_Во_Вып_Рейс) as Кол_во_Вып_Рейсов, case Datepart(mm,Дата)

when 1 then 'Январь'

when 2 then 'Февраль'

when 3 then 'Март'

when 4 then 'Апрель'

when 5 then 'Май'

when 6 then 'Июнь'

when 7 then 'Июль'

when 8 then 'Август'

when 9 then 'Сентябрь'

when 10 then 'Октябрь'

when 11 then 'Ноябрь'

when 12 then 'Декабрь'

end as Месяц

From ((Марш_Лист as М join Экипаж as Э on М.Табл_Номер_Вод=Э.Табл_Номер)

join Автобусы as А on Э.Борт_Номер=А.Борт_Номер) join Вмест_Авто as В on А.Код_Марки=В.Код_Марки

Where Datepart(mm,Дата)=4

Group by А.Гос_Номер, В.Марка, Datepart(mm,Дата)

Гос_Номер

Марка

Кол_Во_Вып_Рейсов

Месяц

АК823

ПАЗ

60

Апрель

АК976

ПАЗ

64

Апрель

АН231

ПАЗ

48

Апрель

АС065

ЛИАЗ

60

Апрель

АС912

КАВЗ

60

Апрель

АТ004

ЛИАЗ

44

Апрель

АТ123

ПАЗ

44

Апрель

АТ664

ГОЛАЗ

64

Апрель

ЕМ005

ЛИАЗ

48

Апрель

ЕМ754

ПАЗ

56

Апрель

ЕР237

ГОЛАЗ

56

Апрель

УГ342

ЛИАЗ

56

Апрель

УН342

ПАЗ

48

Апрель

УН765

ЛИАЗ

44

Апрель

--6. Показать какое количество смен отработали водители и кондукторы за месяц.

Select ФИО, Должность, count(Кол_Во_Вып_Рейс) as Кол_Во_Смен, case Datepart(mm,Дата)

when 1 then 'Январь'

when 2 then 'Февраль'

when 3 then 'Март'

when 4 then 'Апрель'

when 5 then 'Май'

when 6 then 'Июнь'

when 7 then 'Июль'

when 8 then 'Август'

when 9 then 'Сентябрь'

when 10 then 'Октябрь'

when 11 then 'Ноябрь'

when 12 then 'Декабрь'

end as Месяц

From (Марш_Лист as М join Лич_Данные as Л on М.Табл_Номер_Вод=Л.Табл_Номер) join Учетные_данные as У on М.Табл_Номер_Вод=У.Табл_Номер

Where Datepart(mm,Дата)=4

Group by ФИО, Должность, Datepart(mm,Дата)

union

select ФИО, Должность, count(Кол_Во_Вып_Рейс) as Кол_Во_Смен, case Datepart(mm,Дата)

when 1 then 'Январь'

when 2 then 'Февраль'

when 3 then 'Март'

when 4 then 'Апрель'

when 5 then 'Май'

when 6 then 'Июнь'

when 7 then 'Июль'

when 8 then 'Август'

when 9 then 'Сентябрь'

when 10 then 'Октябрь'

when 11 then 'Ноябрь'

when 12 then 'Декабрь'

end as Месяц

From (Марш_Лист as М join Лич_Данные as Л on М.Табл_Номер_Кондр=Л.Табл_Номер) join Учетные_данные as У on М.Табл_Номер_Кондр=У.Табл_Номер

Where Datepart(mm,Дата)=4

Group by ФИО, Должность, Datepart(mm,Дата)

ФИО

Должность

Кол_Во_Вып_Смен

Месяц

Алейник Валентина Владимировна

Кондуктор

4

Апрель

Александров Олег Иванович

Водитель

4

Апрель

Баимкин Дмитрий Леонидович

Водитель

4

Апрель

Беляков Николай Феофанович

Водитель

4

Апрель

Бизякин Анатолий Васильевич

Кондуктор

4

Апрель

Бурова Надежда Васильевна

Кондуктор

4

Апрель

Волкова Татьяна Львовна

Кондуктор

4

Апрель

Григорьева Зоя Григорьевна

Кондуктор

4

Апрель

Дик Инна Эдуардовна

Кондуктор

4

Апрель

Дорофеева Рита Ивановна

Кондуктор

4

Апрель

Иванов Николай Геннадьевич

Водитель

4

Апрель

Иванова Ольга Юрьевна

Кондуктор

4

Апрель

Карнеева Нелли Васильевна

Кондуктор

4

Апрель

Карпова Евгения Николаевна

Кондуктор

4

Апрель

Кашкарова Елена Геннадьевна

Кондуктор

4

Апрель

Красных Андрей Николаевич

Водитель

4

Апрель

Ларионов Николай Анатольевич

Водитель

4

Апрель

Михайлов Вячеслав Аркадьевич

Водитель

4

Апрель

Николаева Надежда Николаевна

Кондуктор

7

Апрель

Охотин Максим Николаевич

Водитель

3

Апрель

Павлов Валерий Михайлович

Водитель

4

Апрель

Павлов Николай Германович

Водитель

4

Апрель

Пономарев Андрей Иванович

Водитель

4

Апрель

Смоленцев Иван Владимирович

Водитель

4

Апрель

Степанов Анатолий Фирсович

Водитель

4

Апрель

Черемисина Евгения Наумовна

Кондуктор

4

Апрель

Шихматов Александр Алексеевич

Водитель

4

Апрель

Якушенко Евгения Александровна

Кондуктор

4

Апрель

Ястребов Александр Валентинович

Водитель

4

Апрель

--7. Выдать фамилию директора пассажирского автопредприятия.

Select ФИО

From (Учетные_Данные as У join Лич_Данные as Л on У.Табл_Номер=Л.Табл_Номер) join Отделы as О on У.Код_Отдела=О.Код_Отдела

where Должность='Директор'

ФИО

Баимкин Игорь Леонидович

--8. Выдать информацию по маршруту, на котором работал 2012-04-14 Степанов Анатолий Фирсович.

Select А.Борт_Номер, Ма.Номер_Марш, Ма.Маршрут, Ма.Протяженность

From ((Марш_Лист as М join Экипаж as Э on М.Табл_Номер_Вод=Э.Табл_Номер)

join Автобусы as А on Э.Борт_Номер=А.Борт_Номер)

join Лич_Данные as Л on М.Табл_Номер_Вод=Л.Табл_Номер

join Маршрут as Ма on Ма.Номер_Марш=М.Номер_Марш

Where Дата='2012-04-14' and ФИО='Степанов Анатолий Фирсович'

Group by А.Борт_Номер, Ма.Номер_Марш, Ма.Маршрут, Ма.Протяженность

Борт_Номер

Номер_Марш

Маршрут

Протяженность

1133

104

маг. Спутник, пл. Сапеги, ул. Чкалова, ул. Котовского, ул. Островского, ул. Гагарина

21

--9. Выдать информацию о работниках обслуживающих маршруты, которые младше 1982 года.

Select ФИО, Должность, Datepart(yy,Дата_Рожд) as Год_Рождения

From (Учетные_Данные as У join Лич_Данные as Л on У.Табл_Номер=Л.Табл_Номер) join Отделы as О on У.Код_Отдела=О.Код_Отдела

where Назв_Отдела='Обслуж_Маршруты' and Datepart(yy,Дата_Рожд)>=1982

ФИО

Должность

Год Рождения

Охотин Максим Николаевич

Водитель

1982

Ястребов Александр Валентинович

Водитель

1984

Ларионов Николай Анатольевич

Водитель

1983

Иванов Николай Геннадьевич

Водитель

1983

Павлов Николай Германович

Водитель

1986

Карпова Евгения Николаевна

Кондуктор

1983

Степанов Анатолий Фирсович

Водитель

1984

--10. Вывести марки и вместимость тех автобусов, которые обслуживают 101 маршрут. (Корелированный подзапрос)

Select Марка, Вместимость

From Вмест_Авто В

Where Exists (

Select *

from (Автобусы as А join Экипаж as Э on Э.Борт_Номер=А.Борт_Номер)

join Учетные_Данные as У on У.Табл_Номер=Э.Табл_Номер

join Марш_Лист as М on М.Табл_Номер_Вод=У.ТАбл_Номер

Where Номер_Марш='101' and А.Код_Марки=В.Код_Марки

Group by Марка, Вместимость)

Марка

Вместимость

ПАЗ

54

КАВЗ

89

--11. Вывести список кондукторов и водиелей которые не работали 12 апреля. (Внешний подзапрос)

Select ФИО, Должность

From Лич_Данные as Л right join Учетные_Данные as У on Л.Табл_Номер=У.Табл_Номер

Where Л.Табл_Номер not in(select Табл_Номер_Вод

from Марш_Лист Ма

Where Дата='2012-04-12' and Ма.Табл_Номер_Вод=У.Табл_Номер) and Л.Табл_Номер not in (select Табл_Номер_Кондр

from Марш_Лист Ма

Where Дата='2012-04-12' and Ма.Табл_Номер_Кондр=У.Табл_Номер) and (Должность='Кондуктор' or Должность='Водитель')

ФИО

Должность

Охотин Максим Николаевич

Водитель

Николаева Надежда Николаевна

Кондуктор

23

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]