Задание 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 (с помощью хранимой процедуры)