Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторные работы (А-13-07) / Алехин, Макашова / Макашова_Алехин_Лабораторная_работа_8.doc
Скачиваний:
41
Добавлен:
28.06.2014
Размер:
136.7 Кб
Скачать

Лабораторная работа 8

Вариант № 1

Выполнили студенты группы А-13-07

Макашова Мария

Алехин Роман

Задание 8

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

create procedure z8 as

declare @sp char (6)

declare @go char(2)

declare @it1 int

declare @it2 int

declare @itall int

declare @go1 char (2)

declare y cursor for

select gp, spec, count (*)

from uzb

group by spec, gp

select @it2=0

select @itall=0

open y

fetch y into @go, @sp, @it1

if (@@fetch_status=-2)

begin

print 'Ошибка при выполнении первого FETCH'

close y

return

end

if (@@fetch_status=-1)

begin

print 'Данные не найдены'

close y

return

end

select @go1=@go

print @sp+' - '+str(@it1, 4)

select @it2=@it2+@it1

select @itall=@itall+@it1

while (@@fetch_status=0)

begin

fetch y into @go, @sp, @it1

if (@go1 != @go)

begin

print 'Год приёма ' + @go1 + ' - ' +str(@it2, 4)

select @go1=@go

select @it2=0

end

if (@@fetch_status=-1)

break

print @sp+' - '+str(@it1, 4)

select @it2=@it2+@it1

select @itall=@itall+@it1

end

close y

if (@@fetch_status=-2)

begin

print 'Ошибка при выполнении первого FETCH'

return

end

print 'Год приёма ' + @go + ' - ' + str(@it2, 4)

print '-----------------------------------------------------------'

print 'Всего - '+str(@itall, 4)

deallocate y

return

001707 - 1

010105 - 1

080001 - 1

120002 - 1

Год приема 00 - 4

000211 - 1

Год приема 07 - 1

000604 - 1

Год приема 09 - 1

003102 - 1

Год приема 81 - 1

000000 - 11

000303 - 1

000401 - 4

001111 - 1

001707 - 1

Год приема 84 - 18

000000 - 51

000303 - 1

000401 - 13

000403 - 7

002806 - 4

Год приема 85 - 76

Задание 9

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

create procedure z9 as

declare @yz char (25)

declare @ko char (16)

declare @it1 int

declare @it2 int

declare @itall int

declare @ko1 char (16)

declare y cursor for

select kat_obucheniya, vuz.uch_zavedenie , count (*)

from uzb

join vuz on vuz_k=vuz.cod

join kat_obuch on kat_obuch_k=kat_obuch.cod

group by kat_obuch.kat_obucheniya, vuz.uch_zavedenie

order by kat_obuch.kat_obucheniya, vuz.uch_zavedenie

select @it2=0

select @itall=0

open y

fetch y into @ko,@yz, @it1

if (@@fetch_status=-2)

begin

print ‘Ошибка при выполнении первого FETCH’

close y

return

end

if (@@fetch_status=-1)

begin

print ‘Данные не найдены’

close y

return

end

select @ko1=@ko

print @yz+' -'+str(@it1)

select @it2=@it2+@it1

select @itall=@itall+@it1

while (@@fetch_status=0)

begin

fetch y into @ko,@yz, @it1

if (@ko1 !=@ko)

begin

print 'категория обучения ' + @ko1 + ' - ' +str(@it2)

select @ko1=@ko

select @it2=0

end

if (@@fetch_status=-1)

break

print @yz + ' - ' +str(@it1)

select @it2=@it2+@it1

select @itall=@itall+@it1

end

close y

if (@@fetch_status=-2)

begin

print ‘Ошибка при выполнении первого FETCH’

return

end

print 'категория обучения ' + @ko + ' - ' +str(@it2)

print '----------------------------------'

print 'всего по запросу-'+str(@itall)

deallocate y

return

2-Й ТАШ.МЕД.ИНСТ. - 9

ТАШ.ГОС.АГРАР.УН-Т - 19

ТАШ.ГУ - 26

ТАШ.ИНСТ.ИНЖ.Ж/Д ТРАН. - 2

ТАШ.ИНСТ.ТЕКСТ.ПР. - 3

ТАШ.ПИ - 6

ТАШИНХ - 5

категория обучения АСПИРАНТ - 70

ТАШ.ГОС.АГРАР.УН-Т - 3

ТАШ.ГУ - 1

ТАШ.ПИ - 4

категория обучения АСПИРАНТ-ЗАОЧНИК - 8

ТАШ.ГИДР.МЕТЕОР.Т-М - 4

ТАШ.ГУ - 4

ТАШИНХ - 1

категория обучения МАГИСТРАТУРА - 9

2-Й ТАШ.МЕД.ИНСТ. - 5

категория обучения ОРДИНАТУРА - 5

ТАШ.ИНСТ.ИНЖ.Ж/Д ТРАН. - 2

ТАШ.ИНСТ.КУЛЬТ. - 1

категория обучения П/Ф(ВУЗ) - 3

2-Й ТАШ.МЕД.ИНСТ. - 1

ТАШ.ГОС.АГРАР.УН-Т - 5

категория обучения СТАЖЕР - 6

ТАДИ - 1

ТАШ.ГОС.АГРАР.УН-Т - 1

ТАШ.ГУ - 10

ТАШ.ПИ - 1

категория обучения СТАЖЕР+АСПИРАНТ - 13

2-Й ТАШ.МЕД.ИНСТ. - 344

ТАДИ - 139

ТАШ.ГОС.АГРАР.УН-Т - 226

ТАШ.ГУ - 291

ТАШ.ИНД.-ПЕД.Т-М - 9

ТАШ.ИНСТ.ИНЖ.Ж/Д ТРАН. - 4

ТАШ.ИНСТ.КУЛЬТ. - 47

ТАШ.ИНСТ.ТЕКСТ.ПР. - 99

ТАШ.КОНСЕРВАТОРИЯ - 1

ТАШ.МАШ.СТР.ИНСТ. - 142

ТАШ.ПИ - 279

ТАШ.ТЕАТР.ХУД.ИНСТ. - 6

ТАШИНХ - 86

категория обучения СТУДЕНТ - 1673

ТАДИ - 24

ТАШ.ПИ - 5

категория обучения СТУДЕНТ-ЗАОЧНИК - 29

ТАШ.ГИДР.МЕТЕОР.Т-М - 32

ТАШ.ИНД.-ПЕД.Т-М - 16

ТАШ.КУЛЬТ.ПРОСВ.Т-М - 2

ТАШ.ПОЛИГР.Т-М - 12

ТАШ.ТОПОГРАФ.Т-М - 39

ТАШ.ХУДОЖ.УЧ. - 1

ТАШ.ЭЛ.ТЕХ.МЕД.Т-М - 11

категория обучения УЧАЩИЙСЯ - 113

ТАШ. ШК.-ИНТ. ИМ.ТИТОВА - 3

ТАШ. ШК.-ИНТ.N98 - 55

ТАШ. ШК.-ИНТ.ЮН.ФИЗ.-МАТ. - 13

категория обучения ШКОЛЬНИК - 71

----------------------------------

всего по запросу- 2000