Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторные работы (2011) / Афанасьев / Лабораторная работа 5.doc
Скачиваний:
63
Добавлен:
28.06.2014
Размер:
1.61 Mб
Скачать

Задание 5

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

create procedure proc5 as

select count(*) as Количество студентов-выпускников 1994 года

from uzb

join kat_obuch on kat_obuch_k = kat_obuch.cod

where kat_obucheniya = ’СТУДЕНТ’ and gok='94'

select spec as Шифр специальности, count(*) as Количество студентов-выпускников 1994 года

from uzb

join kat_obuch on kat_obuch_k = kat_obuch.cod

where gok='94' and kat_obucheniya = ’СТУДЕНТ’

group by spec

Задание 6

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

create procedure proc6 as

select count(*) as "Всего принято"

from uzb

select gp as "Год приема", count(*) as "Принято учащихся"

from uzb

group by gp

Задание 7

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

create procedure proc7 as

select count(*) as "Всего выпускников"

from uzb

select gok as "Год окончания", count(*) as "Количество"

from uzb

group by gok

Задание 8

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

create procedure zapr8 as

select vsego=count(*) from uzb where gp='91'

select kat_obuch.kat_obucheniya, kolvo=count(*)

from uzb 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 uzb where spec in ('000401','000402','000403','000405')

group by spec

Задание 10

Выдать статистику по семейному положению учащихся вашего го­сударства, заканчивающих учебу в 1994 или в 1995 году. Отчет должен начинаться с соответствующего заголовка. Далее - две таблицы, где каждая таблица начинается с заголовка: ГОД ВЫПУСКА <год> - ВСЕГО <цифра> (не равная нулю), а заканчивается перечнем семейных положе­ний с цифрами, не равными нулю.

Create procedure 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 uzb 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 uzb where gok='95'

group by gok

Задание 11

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

create procedure zapr11 as

select kat_obucheniya, vsego=COUNT(*)

from uzb join kat_obuch on kat_obuch_k=cod

where kat_obuch_k='03'

group by kat_obucheniya

select nazvanie_goroda, vsego=COUNT(*)

from uzb

inner join vuz_gorod on cod_vuza=uzb.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 uzb

select nazvanie_vuza, [всех]=COUNT(*),

sum(case when gok = '94' then 1 else 0 end) [94г. вып]

from uzb join vuz_gorod on (cod_vuza=vuz_k)

group by nazvanie_vuza

Задание 13

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

create procedure zapr13 as

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

FROM uzb join kat_obuch on (kat_obuch_k=cod)

where kat_obucheniya not in (‘СТУДЕНТ-ЗАОЧНИК',’АСПИРАНТ-ЗАОЧНИК')

select kat_obucheniya, [всех]=COUNT(*)

from uzb 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 uzb

where spec between '0004101' and '000699'

select spec, [всех]=COUNT(*) from uzb

where spec between '0004101' and '000699'

group by spec

Задание 15

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

create procedure zapr15 as

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

select uch_zavedenie, [всех]=COUNT(*)

from uzb join vuz on (vuz_k=cod)

group by uch_zavedenie

16