Лабораторные работы (А-13-07) / Крамм, Кохов / лаб 5
.doc
Лабораторная работа №5
по Базам Данных
Выполнили: Кохов В.В
Крамм Е.М
Группа: А-13-07
Преподаватель: Сидорова Н. П.
Задание 8
Выдать статистику по категориям обучения учащихся вашего государства только прием 1991 года. Отчет должен начинаться заголовком и цифрой - общим количеством записей по запросу (по приему 91-го года). Далее таблица, включающая перечень категорий обучения с цифрами, не равными нулю.
create procedure zapr8 as
select vsego=count(*) from azer where gp='91'
select kat_obuch.kat_obucheniya, kolvo=count(*)
from azer join kat_obuch on kat_obuch_k=kat_obuch.cod
where gp='91'
group by kat_obuch.kat_obucheniya
Задание 9
Выдать статистику по вашему государству по следующим специальностям: 0401 , 0402, 0403 и 0405 (общее число по каждой специальности), а также количества мужчин и женщин по каждой из этих специальностей. Отчет должен начинаться с соответствующего заголовка. Далее таблица из четырех строчек, где каждая строчка включает шифр специальности и 3 цифры: всего, количество мужчин и количество женщин.
Create procedure zapr9 as
select spec, [всех]=COUNT(*),
sum(case when pol = 'М' then 1 else 0 end) [муж],
sum(case when pol = 'Ж' then 1 else 0 end) [жен]
from azer where spec in ('000401','000402','000403','000405')
group by spec
Задание 10
Выдать статистику по семейному положению учащихся вашего государства, заканчивающих учебу в 1994 или в 1995 году. Отчет должен начинаться с соответствующего заголовка. Далее - две таблицы, где каждая таблица начинается с заголовка: ГОД ВЫПУСКА <год> - ВСЕГО <цифра> (не равная нулю), а заканчивается перечнем семейных положений с цифрами, не равными нулю.
ALTER procedure [dbo].[zapr10] as
select gok, [âñåõ]=COUNT(*),
sum(case when sem_polog_k = '0' then 1 else 0 end) [ХОЛОСТ],
sum(case when sem_polog_k = '1' then 1 else 0 end) [ЖЕНАТ/ЗАМУЖ],
sum(case when sem_polog_k = '2' then 1 else 0 end) [БР.С РОС.ГРЖ],
sum(case when sem_polog_k = '3' then 1 else 0 end) [БР.РОС.З/РУБ]
from azer where gok='94'
group by gok
select gok, [âñåõ]=COUNT(*),
sum(case when sem_polog_k = '0' then 1 else 0 end) [ХОЛОСТ],
sum(case when sem_polog_k = '1' then 1 else 0 end) [ЖЕНАТ/ЗАМУЖ],
sum(case when sem_polog_k = '2' then 1 else 0 end) [БР.С РОС.ГРЖ],
sum(case when sem_polog_k = '3' then 1 else 0 end) [БР.РОС.З/РУБ]
from azer where gok='95'
group by gok
Задание 11
Выдать статистику по городам вашего государства и только по студентам (исключая другие категории обучения). Отчет должен начинаться с соответствующего заголовка и цифры - общего количества записей по запросу (всего студентов). Далее таблица, включающая перечень городов с цифрами, не равными нулю.
create procedure zapr11 as
select kat_obucheniya, vsego=COUNT(*)
from azer join kat_obuch on kat_obuch_k=cod
where kat_obuch_k='03'
group by kat_obucheniya
select nazvanie_goroda, vsego=COUNT(*)
from azer
inner join vuz_gorod on cod_vuza=azer.vuz_k
where kat_obuch_k='03'
group by nazvanie_goroda
Задание 12
Выдать статистику по учебным заведениям вашего государства, включая цифры по выпуску 1994 года. Отчет должен начинаться с заголовка и цифры - общего количества записей по запросу. Далее таблица, включающая перечень названий учебных заведений с двумя цифрами (у каждого учебного заведения): 1) всего по учебному заведению (не равная нулю); 2) выпуск 1994 года.
create procedure zapr12 as
SELECT COUNT(nomer) AS 'Всего'
FROM azer
select nazvanie_vuza, [всех]=COUNT(*),
sum(case when gok = '94' then 1 else 0 end) [94г. вып]
from azer join vuz_gorod on (cod_vuza=vuz_k)
group by nazvanie_vuza
Задание 13
Выдать статистику по категориям обучения учащихся вашего государства, исключая студентов-заочников и аспирантов-заочников. Отчет должен начинаться с соответствующего заголовка и цифры - общего количества записей по запросу. Далее таблица, включающая перечень требуемых категорий обучения с цифрами, не равными нулю.
create procedure zapr13 as
SELECT COUNT(nomer) AS 'Всего'
FROM azer join kat_obuch on (kat_obuch_k=cod)
where kat_obucheniya not in (‘СТУДЕНТ-ЗАОЧНИК',’АСПИРАНТ-ЗАОЧНИК')
select kat_obucheniya, [всех]=COUNT(*)
from azer join kat_obuch on (kat_obuch_k=cod)
where kat_obucheniya not in ('СТУДЕНТ-ЗАОЧНИК’,'АСПИРАНТ-ЗАОЧНИК')
group by kat_obucheniya
Задание 14
Выдать статистику по специальностям 4-ой, 5-ой и 6-ой групп (т. е. специальности от 0401 до 0699) учащихся вашего государства. Отчет должен начинаться с соответствующего заголовка и цифры - общего количества записей по запросу. Далее таблица, включающая перечень требуемых шифров специальностей с цифрами, не равными нулю.
create procedure zapr14 as
SELECT COUNT(nomer) AS 'Всего' FROM azer
where spec between '0004101' and '000699'
select spec, [всех]=COUNT(*) from azer
where spec between '0004101' and '000699'
group by spec
Задание 15
Выдать статистику по учебным заведениям столицы вашего государства. Отчет должен начинаться с заголовка, включающего название города и цифру - общее количество записей по запросу (всего по столице). Далее таблица, включающая перечень требуемых учебных заведений с цифрами, не равными нулю.
create procedure zapr15 as
SELECT COUNT(*) AS 'Всего' FROM azer
select uch_zavedenie, [всех]=COUNT(*)
from azer join vuz on (vuz_k=cod)
group by uch_zavedenie