Национальный Исследовательский Университет
Московский Энергетический Институт
Кафедра Прикладной Математики
Лабораторная работа №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