Скачиваний:
47
Добавлен:
28.06.2014
Размер:
167.94 Кб
Скачать

Отчёт к лабораторной работе №5

по Базам Данных

Выполнил студент группы

А-13-07

Беляков Р.Д.

Задание 8

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

select gp as STAT, count(*) as Total from poss where gp='91'

group by gp

select kat_obuch.kat_obucheniya, count(kat_obuch.kat_obucheniya) as Total

from poss join kat_obuch on kat_obuch_k=kat_obuch.cod

where gp ='91'

group by kat_obuch.kat_obucheniya

create procedure z8 as

select gp as STAT, count(*) as Total from poss where gp='91'

group by gp

select kat_obuch.kat_obucheniya, count(kat_obuch.kat_obucheniya) as Total

from poss join kat_obuch on kat_obuch_k=kat_obuch.cod

where gp ='91'

group by kat_obuch.kat_obucheniya

exec z8

Задание 9

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

select a.spec [специализация], t [всего], e [женщин], h [мужчин]

from (

select spec , COUNT(spec) as e

from poss

where nomer in (select nomer from poss where spec in (0401 ,0402 ,0403 ,0405) and pol = 'Æ')

group by spec

) as a join (

select spec , COUNT(spec) as h

from poss

where nomer in (select nomer from poss where spec in (0401 ,0402 ,0403 ,0405) and pol = 'Ì')

group by spec) as b on a.spec = b.spec

join (

select spec , COUNT(spec) as t

from poss

where nomer in (select nomer from poss where spec in (0401 ,0402 ,0403 ,0405))

group by spec) as q on q.spec = a.spec

--

create procedure zadan9 as

select a.spec [специализация], t [всего], e [женщин], h [мужчин]

from (

select spec , COUNT(spec) as e

from poss

where nomer in (select nomer from poss where spec in (0401 ,0402 ,0403 ,0405) and pol = 'Æ')

group by spec

) as a join (

select spec , COUNT(spec) as h

from poss

where nomer in (select nomer from poss where spec in (0401 ,0402 ,0403 ,0405) and pol = 'Ì')

group by spec) as b on a.spec = b.spec

join (

select spec , COUNT(spec) as t

from poss

where nomer in (select nomer from poss where spec in (0401 ,0402 ,0403 ,0405))

group by spec) as q on q.spec = a.spec

Задание 10

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

select gok as Stat, COUNT(*) as Total from poss where gok = '94'

group by gok

select family.family_status, count(family.family_status) as Total

from poss join family on poss.sem_polog_k=family.cod

where gok = '94'

group by family.family_status

select gok as Stat, COUNT(*) as Total from poss where gok = '95'

group by gok

select family.family_status, count(family.family_status) as Total

from poss join family on poss.sem_polog_k=family.cod

where gok = '95'

group by family.family_status

create procedure z10 as

select gok as Stat, COUNT(*) as Total from poss where gok = '94'

group by gok

select family.family_status, count(family.family_status) as Total

from poss join family on poss.sem_polog_k=family.cod

where gok = '94'

group by family.family_status

select gok as Stat, COUNT(*) as Total from poss where gok = '95'

group by gok

select family.family_status, count(family.family_status) as Total

from poss join family on poss.sem_polog_k=family.cod

where gok = '95'

group by family.family_status

exec z10

Задание 11

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

select kat_obuch_k as Stat, COUNT(*) as Total from poss where kat_obuch_k = '03'

group by kat_obuch_k

union all

select vuz_gorod.nazvanie_goroda, count(*)

from poss join vuz_gorod on vuz_k=vuz_gorod.cod_vuza

where kat_obuch_k = '03'

group by vuz_gorod.nazvanie_goroda

create procedure z11 as

select kat_obuch_k as Stat, COUNT(*) as Total from poss where kat_obuch_k = '03'

group by kat_obuch_k

union all

select vuz_gorod.nazvanie_goroda, count(*)

from poss join vuz_gorod on vuz_k=vuz_gorod.cod_vuza

where kat_obuch_k = '03'

group by vuz_gorod.nazvanie_goroda

exec z11

Задание 12

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

select *

from (select 'всего' [Название института] , count(*) [Всего в институте] from poss join vuz on vuz_k=vuz.cod) as e

join (select count(*) [1994 ãîä] from poss join vuz on vuz_k=vuz.cod where poss.gok = '94') as f on 1=1

union all

select u [специализация], t [всего], e [1994 год]

from (

select vuz.uch_zavedenie u, count(*) t

from poss join vuz on vuz_k=vuz.cod

group by vuz.uch_zavedenie

) as a

join (

select vuz.uch_zavedenie y, count(*) e

from poss join vuz on vuz_k=vuz.cod

where gok='94'

group by vuz.uch_zavedenie

)

as q on q.y = a.u

Задание 13

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

select 'Stat', COUNT(*) 'as Total' from poss where kat_obuch_k not in ('08', '04')

select kat_obuch.kat_obucheniya, count(*)

from poss join kat_obuch on kat_obuch_k=kat_obuch.cod

where kat_obuch_k not in ('08', '04')

group by kat_obuch.kat_obucheniya

create procedure z12 as

select 'Stat', COUNT(*) 'as Total' from poss where kat_obuch_k not in ('08', '04')

select kat_obuch.kat_obucheniya, count(*)

from poss join kat_obuch on kat_obuch_k=kat_obuch.cod

where kat_obuch_k not in ('08', '04')

group by kat_obuch.kat_obucheniya

exec z13

Задание 14

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

select 'всего студентов', count(*) as Total from poss where spec between '000401' and '000699'

select spec, count(*)

from poss

where spec between '000401' and '000699'

group by spec

create preocedure z13

select 'всего студентов', count(*) as Total from poss where spec between '000401' and '000699'

select spec, count(*)

from poss

where spec between '000401' and '000699'

group by spec

exec z14

Задание 15

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

select 'всего по Москве', COUNT(*)as Total from poss join vuz_gorod on vuz_k=vuz_gorod.cod_vuza

where vuz_k in (select cod_vuza from vuz_gorod where nazvanie_goroda like 'МОСКВА')

select vuz_gorod.nazvanie_vuza, count(*)

from poss join vuz_gorod on vuz_k=vuz_gorod.cod_vuza

where vuz_k in (select cod_vuza from vuz_gorod where nazvanie_goroda like 'МОСКВА')

group by vuz_gorod.nazvanie_vuza

create procedure z15 as

select 'всего по Москве', COUNT(*)

from poss join vuz_gorod on vuz_k=vuz_gorod.cod_vuza

where vuz_k in (select cod_vuza from vuz_gorod where nazvanie_goroda like 'МОСКВА')

union all

select vuz_gorod.nazvanie_vuza, count(*)

from poss join vuz_gorod on vuz_k=vuz_gorod.cod_vuza

where vuz_k in (select cod_vuza from vuz_gorod where nazvanie_goroda like 'МОСКВА')

group by vuz_gorod.nazvanie_vuza

exec z15

Соседние файлы в папке Беляков