Цель:
Научиться выполнять одномерные статистические запросы по одной и по нескольким таблицам БД.
Практически освоить создание и использование простых хранимых процедур для выполнения запросов.
----------------------------------------------------

Задание 3
Выдать статистику по вашему государству по следующим специаль¬ностям: 0202, 0203, 0205, 0206 (общее число по каждой специальности), а также в каких учебных заведениях и сколько обучается по этим специ¬альностям. Отчет должен начинаться с соответствующего заголовка. Да¬лее четыре таблицы, где каждая таблица начинается с заголовка: СПЕЦИАЛЬНОСТЬ <шифр> - ВСЕГО <цифра> (не равная нулю), а заканчивает¬ся перечнем учебных заведений с цифрами, не равными нулю

1 способ
1) select count(*) as 'всего: 0202' from kaza
where spec='0202'
2) select vuz.uch_zavedenie,count(*)
from kaza join vuz on vuz_k=vuz.cod
where spec in ('0202', '0203', '0205', '0206')
group by vuz.uch_zavedenie

2 способ
create procedure zapr6 as
select count(*) as 'всего: 0202' from kaza
where spec='0202'
select vuz.uch_zavedenie,count(*)
from kaza join vuz on vuz_k=vuz.cod
where spec in ('0202', '0203', '0205', '0206')
group by vuz.uch_zavedenie

3) select count(*) as 'всего: 0203' from kaza
where spec='0203'
4) select vuz.uch_zavedenie,count(*) as '0203'
from kaza,vuz
where spec='0203' and vuz_k=vuz.cod
group by vuz.uch_zavedenie

5) select count(*) as 'всего: 0205' from kaza
where spec='0205'
6) select vuz.uch_zavedenie,count(*) as '0205'
from kaza,vuz
where spec='0205' and vuz_k=vuz.cod
group by vuz.uch_zavedenie

7) select count(*) as 'всего: 0206' from kaza
where spec='0206'
8) select vuz.uch_zavedenie,count(*) as '0206'
from kaza,vuz
where spec='0206' and vuz_k=vuz.cod
group by vuz.uch_zavedenie
-----------------------------------------------

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

1 способ
1) select count(*) from kaza
where pol='М'
2) select vuz.uch_zavedenie,count(*)
from kaza join vuz on vuz_k=vuz.cod
where pol='М'
group by vuz.uch_zavedenie

2 способ
create procedure zapr1 as
select count(*) from kaza where pol='М'
select vuz.uch_zavedenie,count(*)
from kaza join vuz on vuz_k=vuz.cod
where pol='М'
group by vuz.uch_zavedenie
-----------------------------------------------

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

1способ
1) select count(*) from kaza
where kat_obuch_k='03'
and gok='94'
2) select spec, count(*) from kaza
where gok='94' and kat_obuch_k='03'
group by spec

2 способ

create procedure zapr2 as
select count(*) from kaza
where kat_obuch_k='03'
and gok='94'
select spec, count(*) from kaza
where gok='94' and kat_obuch_k='03'
group by spec
-----------------------------------------------

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

1 способ

1) select count(*) from kaza
where gp='91'
2) select kat_obuch.kat_obucheniya, count(*)
from kaza join kat_obuch on kat_obuch_k=kat_obuch.cod
where gok='91'
group by kat_obuch.kat_obucheniya

2 способ
create procedure zapr3 as
select count(*) from kaza where gp='91'
select kat_obuch.kat_obucheniya, count(*)
from kaza join kat_obuch on kat_obuch_k=kat_obuch.cod
where gok='91'
group by kat_obuch.kat_obucheniya
-----------------------------------------------

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

1 способ
1) select count(*) from kaza
where kat_obuch_k='03'
2) select vuz_gorod.nazvanie_goroda, count(*)
from kaza join vuz_gorod on vuz_k=vuz_gorod.cod_vuza
where kat_obuch_k='03'
group by vuz_gorod.nazvanie_goroda

2 способ
create procedure zapr4 as
select count(*) from kaza where kat_obuch_k='03'
select vuz_gorod.nazvanie_goroda, count(*)
from kaza join vuz_gorod on vuz_k=vuz_gorod.cod_vuza
where kat_obuch_k='03'
group by vuz_gorod.nazvanie_goroda
-----------------------------------------------





Чтобы не видеть здесь видео-рекламу достаточно стать зарегистрированным пользователем.
Чтобы не видеть никакую рекламу на сайте, нужно стать VIP-пользователем.
Это можно сделать совершенно бесплатно. Читайте подробности тут.