Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторные работы (2011) / Ганишев / Лабораторная работа 4.docx
Скачиваний:
44
Добавлен:
28.06.2014
Размер:
187.85 Кб
Скачать

Задание 6

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

select COUNT(*) as 'Общее кол-во'

from bel

select gp as 'Год приёма',

COUNT(*) as 'Кол-во'

from bel

group by gp

Задание 7

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

select COUNT(*) as 'Общее кол-во'

from bel

select gok as 'Год окончания',

COUNT(*) as 'Кол-во'

from bel

group by gok

Задание 8

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

select COUNT(*) as 'Общее кол-во'

from bel

where gp = '91'

select kat_obuch.kat_obucheniya as 'Категория обучения',

COUNT(*) as 'Всего'

from bel join kat_obuch on cod = kat_obuch_k

where gp = '91'

group by kat_obuch.kat_obucheniya

Задание 9

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

select COUNT(*) as 'Общее кол-во'

from bel

where spec in ('000401','000404','000403','000405')

select spec as 'Специальность',

COUNT(*) as 'Всего',

sum(case pol when 'М' then 1 else 0 end) as 'Количество мужчин',

sum(case pol when 'Ж' then 1 else 0 end) as 'Количество женщин'

from bel

where spec in ('000401','000404','000403','000405')

group by spec

Задание 10

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

Создадим хранимую процедуру:

create procedure sem_polog (@x char(2)) as

select @x as 'Год окончания',

count(*) as 'Количество'

from bel join kat_obuch on cod = kat_obuch_k

where gok = @x

and kat_obuch.kat_obucheniya = 'УЧАЩИЙСЯ'

select family.family_status as 'Семейное положение',

count(*) as 'Количество'

from bel join kat_obuch on kat_obuch.cod = kat_obuch_k

join family on family.cod = sem_polog_k

where gok = @x

and kat_obuch.kat_obucheniya = 'УЧАЩИЙСЯ'

group by family_status

Вызов:

exec sem_polog '94'

exec sem_polog '95'