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

Задание 12

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

Запросы:

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

SELECT COUNT(*) AS 'Всего выпускников'

FROM arm

go

SELECT vuz.uch_zavedenie AS 'Учебное заведение', N AS 'Всего выпускников', N94 AS 'Среди них выпускников 1994 года'

FROM

(

SELECT vuz_k, COUNT(*) AS N94

FROM arm

WHERE gok = '94'

GROUP BY vuz_k

) AS TABLE1

JOIN

(

SELECT vuz_k, COUNT(*) AS N

FROM arm

GROUP BY vuz_k

) AS TABLE2

ON TABLE1.vuz_k = TABLE2.vuz_k

JOIN vuz

ON vuz.cod = TABLE1.vuz_k

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

CREATE PROCEDURE lab5_p12 @year VARCHAR(2) = '94' AS

BEGIN

SELECT COUNT(*) AS 'Всего выпускников'

FROM arm

SELECT uch_zavedenie AS 'Учебное заведение', N AS 'Всего выпускников', N94 AS 'Из них искомого года'

FROM

(

SELECT vuz_k, COUNT(*) AS N94

FROM arm

WHERE gok = @year

GROUP BY vuz_k

) AS TABLE1

JOIN

(

SELECT vuz_k, COUNT(*) AS N

FROM arm

GROUP BY vuz_k

) AS TABLE2

ON TABLE1.vuz_k = TABLE2.vuz_k

JOIN vuz

ON vuz.cod = TABLE1.vuz_k

END

Результаты:

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

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

Задание 13

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

Запросы:

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

SELECT COUNT(*) AS 'Всего учащихся на очной форме'

FROM arm

WHERE kat_obuch_k NOT IN(

SELECT cod

FROM kat_obuch

WHERE kat_obucheniya LIKE('СТУДЕНТ-З%') OR kat_obucheniya LIKE('АСПИРАНТ-З%')

)

go

SELECT kat_obuch.kat_obucheniya AS 'Категория обучения', COUNT(*) AS 'Количество'

FROM arm

JOIN kat_obuch ON kat_obuch.cod = kat_obuch_k

WHERE kat_obucheniya NOT LIKE('СТУДЕНТ-З%') AND kat_obucheniya NOT LIKE('АСПИРАНТ-З%')

GROUP BY kat_obuch.kat_obucheniya

ORDER BY kat_obuch.kat_obucheniya

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

CREATE PROCEDURE lab5_p13 AS

BEGIN

SELECT COUNT(*) AS 'Всего учащихся на очной форме'

FROM arm

WHERE kat_obuch_k NOT IN(

SELECT cod

FROM kat_obuch

WHERE kat_obucheniya LIKE('СТУДЕНТ-З%') OR kat_obucheniya LIKE('АСПИРАНТ-З%')

)

SELECT kat_obuch.kat_obucheniya AS 'Категория обучения', COUNT(*) AS 'Количество'

FROM arm

JOIN kat_obuch ON kat_obuch.cod = kat_obuch_k

WHERE kat_obucheniya NOT LIKE('СТУДЕНТ-З%') AND kat_obucheniya NOT LIKE('АСПИРАНТ-З%')

GROUP BY kat_obuch.kat_obucheniya

ORDER BY kat_obuch.kat_obucheniya

END

Результаты:

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

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