Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
48
Добавлен:
28.06.2014
Размер:
2.9 Mб
Скачать

Задание 7

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

Запросы:

Вариант 1 (в диалоговом SQL)

SELECT COUNT(*) AS 'Количество окончивших учебные заведения за все года'

FROM arm

go

SELECT gok AS 'Год', COUNT(*) AS 'Количество окончивших'

FROM arm

GROUP BY gok

ORDER BY gok

Вариант 2 (с помощью хранимой процедуры)

CREATE PROCEDURE lab5_p7 AS

BEGIN

SELECT COUNT(*) AS 'Количество окончивших учебные заведения за все года'

FROM arm

SELECT gok AS 'Год', COUNT(*) AS 'Количество окончивших'

FROM arm

GROUP BY gok

ORDER BY gok

END

Результаты:

Вариант 1 (в диалоговом SQL)

Вариант 2 (с помощью хранимой процедуры)

Задание 8

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

Запросы:

Вариант 1 (в диалоговом SQL)

SELECTcount(*)AS'Всегопоступило в 91 г'

FROMarm

WHEREgp='91'

go

SELECTkat_obucheniyaAS'Категорияобучения',count(*)AS'Кол-во'

FROMarm

JOINkat_obuchONkat_obuch.cod=kat_obuch_k

WHEREgp='91'

GROUPBYkat_obucheniya

Вариант 2 (с помощью хранимой процедуры)

CREATEPROCEDURElab5_p8(@yearCHAR(2))AS

BEGIN

SELECTcount(*)AS'Всегопоступило'

FROMarm

WHEREgp=@year

SELECTkat_obucheniyaAS'Категорияобучения',count(*)AS'Кол-во'

FROMarm

JOINkat_obuchONkat_obuch.cod=kat_obuch_k

WHEREgp=@year

GROUPBYkat_obucheniya

END

Результаты:

Вариант 1 (в диалоговом SQL)

Вариант 2 (с помощью хранимой процедуры)

Задание 9

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

Запросы:

Вариант 1 (в диалоговом SQL)

SELECT

specAS'Специальность',

count(*)AS'Общеечисло',

sum(CASEWHEN pol = 'М' THEN 1 ELSE 0 END)AS'Мужчины',

sum(CASEWHEN pol = 'Ж' THEN 1 ELSE 0 END)AS'Женщины'

FROMarm

WHEREspecIN('000401', '000402', '000403', '000405')

GROUPBYspec

ORDERBYspec

Вариант 2 (с помощью хранимой процедуры)

CREATEPROCEDURElab5_p9AS

BEGIN

SELECT

specAS'Специальность',

count(*)AS'Общеечисло',

sum(CASEWHEN pol='М'THEN 1 ELSE 0 END)AS'Мужчины',

sum(CASEWHEN pol = 'Ж' THEN 1 ELSE 0 END)AS'Женщины'

FROMarm

WHEREspecIN('000401','000402','000403','000405')

GROUPBYspec

ORDERBYspec

END

Результаты:

Вариант 1 (в диалоговом SQL)

Вариант 2 (с помощью хранимой процедуры)