Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторные работы (2011) / Бочаров, Кобец / Лабораторная работа 5.docx
Скачиваний:
55
Добавлен:
28.06.2014
Размер:
2.19 Mб
Скачать

Национальный Исследовательский Университет

Московский Энергетический Институт

Кафедра Прикладной Математики

Лабораторная работа №5

Одномерные статистические запросы по одной и по нескольким таблицам БД. Создание и использование простых хранимых процедур для выполнения запросов.

Выполнили: Бочаров Иван

Кобец Сергей

А-13-08

Преподаватель: Сидорова Н.П.

Москва 2011г.

Задание 1

Выдать статистику по учебным заведениям вашего государства только прием 1990 года. Отчет должен начинаться заголовком и цифрой ­общим количеством записей по запросу (по приему 90-го года). Далее таблица, включающая перечень учебных заведений с цифрами, не равными нулю.

create PROCEDURE lr5_p1 @god VARCHAR(2) AS

BEGIN

select COUNT(*) as 'Количество' from arm where gp = @god

select vuz.uch_zavedenie, COUNT(*) from arm

join vuz on vuz_k = vuz.cod

where gp = @god

group by uch_zavedenie

END

Задание 2

Выдать статистику по городам вашего государства. Отчет должен начинаться с соответствующего заголовка и цифры - общего количества записей по запросу. Далее таблица, включающая перечень городов с циф­рами, не равными нулю.

create procedure lr5_p2 as

begin

select COUNT(*)

from gorod

where gorod.cod

in (select cod_goroda from vuz_gorod where nazvanie_stran LIKE 'АРМЕНИЯ%')

select nazvanie_goroda, COUNT(*)

from arm

join vuz_gorod on vuz_k = cod_vuza

group by nazvanie_goroda

order by nazvanie_goroda

end

Задание 3

Выдать статистику по вашему государству по следующим специаль­ностям: 0202, 0203, 0205, 0206 (общее число по каждой специальности), а также в каких учебных заведениях и сколько обучается по этим специ­альностям. Отчет должен начинаться с соответствующего заголовка. Да­лее четыре таблицы, где каждая таблица начинается с заголовка: СПЕЦИАЛЬНОСТЬ <шифр> - ВСЕГО <цифра> (не равная нулю), а заканчивает­ся перечнем учебных заведений с цифрами, не равными нулю.

create procedure lr5_p3 as

begin

SELECT 'Статистика по специальностям 0202, 0203, 0205 и 0206'

EXEC lab5_p3 '000202'

EXEC lab5_p3 '000203'

EXEC lab5_p3 '000205'

EXEC lab5_p3 '000206'

End

Create PROCEDURE lab5_p3 @num VARCHAR(6) AS

BEGIN

PRINT 'Специальность ' + @num

SELECT COUNT(*) AS 'Всего'

FROM arm

WHERE spec = @num

SELECT uch_zavedenie AS 'Учебное заведение', COUNT(*) AS 'Количество обучаемых'

FROM arm

JOIN vuz ON vuz.cod = vuz_k

WHERE spec = @num

GROUP BY uch_zavedenie

ORDER BY uch_zavedenie

Задание 4

Выдать статистику по учебным заведениям вашего государства и только по лицам мужского пола. Отчет должен начинаться с заголовка и цифры - общего количества записей по запросу (всего мужчин). Далее таблица, включающая перечень учебных заведений с цифрами, не равными нулю.

create procedure lr5_p4 as

begin

select COUNT(*) as 'Количество' from arm where pol = 'Ì'

select uch_zavedenie,COUNT(*)

from arm

join vuz on vuz_k = vuz.cod

where pol ='Ì'

group by uch_zavedenie

order by uch_zavedenie

end