Задание 15
Выдать статистику по специальностям и учебным заведениям вашего государства. Отчет должен начинаться с заголовка и цифры - общего количества записей по запросу. Далее совокупность таблиц, где каждая таблица начинается с заголовка: СПЕЦИАЛЬНОСТЬ <шифр> - ВСЕГО <цифра>, не равная нулю, а заканчивается перечнем названий учебных заведений с цифрами, не равными нулю.
create procedure z15 as
declare @yz char (25)
declare @sp char(16)
declare @it1 int
declare @it2 int
declare @itall int
declare @sp1 char (16)
declare y cursor for
select spec, vuz.uch_zavedenie, count (*)
from uzb
join vuz on vuz_k = vuz.cod
group by spec, vuz.uch_zavedenie
order by spec, vuz.uch_zavedenie
select @it2=0
select @itall=0
open y
fetch y into @sp, @yz, @it1
if (@@fetch_status=-2)
begin
print ‘Ошибка при выполнении первого FETCH’
close y
return
end
if (@@fetch_status=-1)
begin
print ‘Данные не найдены’
close y
return
end
select @sp1=@sp
print @yz+' - '+str(@it1, 4)
select @it2=@it2+@it1
select @itall=@itall+@it1
while (@@fetch_status=0)
begin
fetch y into @sp, @yz, @it1
if (@sp1 != @sp)
begin
print 'Специальность ' + @sp1 + ' - ' +str(@it2, 4)
select @sp1=@sp
select @it2=0
end
if (@@fetch_status=-1)
break
print @yz+' - '+str(@it1, 4)
select @it2=@it2+@it1
select @itall=@itall+@it1
end
close y
if (@@fetch_status=-2)
begin
print ‘Ошибка при выполнении первого FETCH’
return
end
print 'Специальность ' + @sp + ' - ' + str(@it2, 4)
print '-----------------------------------------------------------'
print 'Всего- '+str(@itall, 4)
deallocate y
return
2-Й ТАШ.МЕД.ИНСТ. - 5
ТАДИ - 1
ТАШ. ШК.-ИНТ. ИМ.ТИТОВА - 1
ТАШ. ШК.-ИНТ.N98 - 55
ТАШ. ШК.-ИНТ.ЮН.ФИЗ.-МАТ. - 13
ТАШ.ГОС.АГРАР.УН-Т - 5
ТАШ.ГУ - 2
ТАШИНХ - 1
Специальность 000000 - 83
ТАШ.ГУ - 4
Специальность 000101 - 4
ТАШ.ГУ - 2
ТАШ.ПИ - 1
Специальность 000104 - 3
ТАШ.ГУ - 1
Специальность 000106 - 1
ТАШ.ГУ - 1
Специальность 000108 - 1
ТАШ.ГУ - 11
Специальность 000109 - 11
ТАШ.ГОС.АГРАР.УН-Т - 1
Специальность 000111 - 1
ТАШ.ГУ - 7
Специальность 000201 - 7
ТАШ.ГУ - 36
Специальность 000204 - 36
ТАШ.ГУ - 33
Специальность 000207 - 33
ТАШ.ГУ - 78
Специальность 000211 - 78
ТАШ.ГУ - 1
Специальность 000212 - 1
ТАШ.ГУ - 3
Специальность 000213 - 3
ТАШ.ГУ - 98
Специальность 000214 - 98
ТАШ.ГОС.АГРАР.УН-Т - 1
Специальность 000217 - 1
ТАШ.ГУ - 2
Специальность 000218 - 2
ТАШ.ГУ - 2
Специальность 000220 - 2
ТАШ.ПИ - 1
Специальность 000302 - 1
ТАШ. ШК.-ИНТ. ИМ.ТИТОВА - 2
Специальность 000303 - 2
2-Й ТАШ.МЕД.ИНСТ. - 292
Специальность 000401 - 292
2-Й ТАШ.МЕД.ИНСТ. - 45
ТАШ.ПИ - 1
Специальность 000403 - 46
2-Й ТАШ.МЕД.ИНСТ. - 3
Специальность 000404 - 3
2-Й ТАШ.МЕД.ИНСТ. - 1
ТАШ.ИНД.-ПЕД.Т-М - 5
Специальность 000501 - 6
ТАШ.КОНСЕРВАТОРИЯ - 1
Специальность 000508 - 1
ТАШ.ИНД.-ПЕД.Т-М - 20
Специальность 000510 - 20
ТАШ.ТЕАТР.ХУД.ИНСТ. - 5
Специальность 000515 - 5
ТАШ.ХУДОЖ.УЧ. - 1
Специальность 000517 - 1
ТАШ.ТЕАТР.ХУД.ИНСТ. - 1
Специальность 000518 - 1
ТАШ.КУЛЬТ.ПРОСВ.Т-М - 2
Специальность 000520 - 2
ТАШ.ИНСТ.КУЛЬТ. - 20
Специальность 000525 - 20
ТАШ.ИНСТ.КУЛЬТ. - 28
Специальность 000526 - 28
2-Й ТАШ.МЕД.ИНСТ. - 1
ТАШ.ГУ - 6
ТАШ.ПИ - 1
Специальность 000601 - 8
ТАШ.ГОС.АГРАР.УН-Т - 2
ТАШИНХ - 49
Специальность 000603 - 51
ТАШИНХ - 25
Специальность 000604 - 25
ТАШИНХ - 4
Специальность 000606 - 4
ТАШИНХ - 2
Специальность 000608 - 2
ТАШИНХ - 1
Специальность 000609 - 1
ТАШИНХ - 1
Специальность 000611 - 1
ТАШ.ГИДР.МЕТЕОР.Т-М - 7
Специальность 000701 - 7
ТАШ.ГИДР.МЕТЕОР.Т-М - 28
Специальность 000702 - 28
ТАШ.ГИДР.МЕТЕОР.Т-М - 1
Специальность 000703 - 1
ТАШ.ГОС.АГРАР.УН-Т - 40
Специальность 000706 - 40
ТАШ.ИНСТ.ТЕКСТ.ПР. - 10
Специальность 000707 - 10
ТАШИНХ - 1
Специальность 000708 - 1
ТАШИНХ - 4
Специальность 000709 - 4
ТАДИ - 32
Специальность 000711 - 32
ТАШИНХ - 1
Специальность 000715 - 1
ТАШ.ГУ - 8
Специальность 000801 - 8
ТАШ.ПИ - 11
Специальность 000804 - 11
…