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

Задание 10

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

Запросы:

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

SELECT 'Семейное положение выпускников 1994 и 1995 гг.'

go

SELECT gok AS 'Год выпуска', COUNT(*) AS 'Количество выпускников'

FROM arm

WHERE gok = '94'

GROUP BY gok

go

SELECT family_status AS 'Семейное положение', COUNT(*) AS 'Количество'

FROM arm

JOIN family ON family.cod = sem_polog_k

WHERE gok = '94'

GROUP BY family_status

ORDER BY family_status

go

SELECT gok AS 'Год выпуска', COUNT(*) AS 'Количество выпускников'

FROM arm

WHERE gok = '95'

GROUP BY gok

go

SELECT family_status AS 'Семейное положение', COUNT(*) AS 'Количество'

FROM arm

JOIN family ON family.cod = sem_polog_k

WHERE gok = '95'

GROUP BY family_status

ORDER BY family_status

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

CREATE PROCEDURE lab5_p10 @year VARCHAR(2) AS

BEGIN

SELECT gok AS 'Год выпуска', COUNT(*) AS 'Количество выпускников'

FROM arm

WHERE gok = @year

GROUP BY gok

SELECT family_status AS 'Семейное положение', COUNT(*) AS 'Количество'

FROM arm

JOIN family ON family.cod = sem_polog_k

WHERE gok = @year

GROUP BY family_status

ORDER BY family_status

END

Результаты:

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

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

Задание 11

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

Запросы:

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

SELECT COUNT(*) AS 'Количество студентов в городах'

FROM arm

WHERE kat_obuch_k IN(SELECT cod FROM kat_obuch WHERE kat_obucheniya LIKE('СТУДЕНТ %'))

go

SELECT vuz_gorod.nazvanie_goroda AS 'Город', COUNT(*) AS 'Количество студентов'

FROM arm

JOIN vuz_gorod ON vuz_gorod.cod_vuza = vuz_k

WHERE kat_obuch_k IN(SELECT cod FROM kat_obuch WHERE kat_obucheniya LIKE('СТУДЕНТ %'))

GROUP BY vuz_gorod.nazvanie_goroda

ORDER BY vuz_gorod.nazvanie_goroda

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

CREATE PROCEDURE lab5_p11 AS

BEGIN

SELECT COUNT(*) AS 'Количество студентов в городах'

FROM arm

WHERE kat_obuch_k IN(SELECT cod FROM kat_obuch WHERE kat_obucheniya LIKE('СТУДЕНТ %'))

SELECT vuz_gorod.nazvanie_goroda AS 'Город', COUNT(*) AS 'Количество студентов'

FROM arm

JOIN vuz_gorod ON vuz_gorod.cod_vuza = vuz_k

WHERE kat_obuch_k IN(SELECT cod FROM kat_obuch WHERE kat_obucheniya LIKE('СТУДЕНТ %'))

GROUP BY vuz_gorod.nazvanie_goroda

ORDER BY vuz_gorod.nazvanie_goroda

END

Результаты:

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

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