Задание 10
Выдать статистику по выпуску 1993 года вашего государства по всем учебным заведениям и специальностям. Отчет должен начинаться с заголовка и цифры - общего количества записей по запросу (выпуску 1993 г.). Далее перечень таблиц, где каждая таблица начинается с заголовка: <название учебного заведения> - <цифра>, не равная нулю, а заканчивается перечнем шифров специальностей с цифрами, не равными нулю.
create procedure z10 as
declare @yz char (25)
declare @sp char (6)
declare @it1 int
declare @it2 int
declare @itall int
declare @yz1 char (25)
declare y cursor for
select vuz.uch_zavedenie, spec, count (*)
from uzb join vuz on vuz_k=vuz.cod
where gok='93'
group by vuz.uch_zavedenie, spec
order by vuz.uch_zavedenie, spec
select @it2=0
select @itall=0
open y
fetch y into @yz, @sp, @it1
if (@@fetch_status=-2) begin
print ‘Ошибка при выполнении первого FETCH’
close y
return
end
if (@@fetch_status=-1) begin
print ‘Данные не найдены’
close y
return
end
select @yz1=@yz
print @sp+' -'+str(@it1)
select @it2=@it2+@it1
select @itall=@itall+@it1
while (@@fetch_status=0)
begin
fetch y into @yz, @sp, @it1
if (@yz1 !=@yz) begin
print 'учебное заведение' + @yz1 + ' - ' +str(@it2)
select @yz1=@yz
select @it2=0
end
if (@@fetch_status=-1) break
print @sp + ' - ' +str(@it1)
select @it2=@it2+@it1
select @itall=@itall+@it1
end
close y
if (@@fetch_status=-2) begin
print ‘Ошибка при выполнении первого FETCH’
return
end
print 'учебное заведение' + @yz + ' - ' +str(@it2)
print '----------------------------------'
print 'всего по запросу-'+str(@itall)
deallocate y
000000 - 5
000401 - 93
000403 - 30
000404 - 3
000601 - 1
140001 - 3
140005 - 1
140006 - 1
140008 - 1
140019 - 1
140022 - 1
140027 - 1
140040 - 1
учебное заведение 2-Й ТАШ.МЕД.ИНСТ. - 142
000711 - 14
001502 - 6
001504 - 17
001505 - 2
002910 - 24
002911 - 14
050402 - 1
учебное заведение ТАДИ - 78
000000 - 1
000303 - 2
учебное заведение ТАШ. ШК.-ИНТ. ИМ.ТИТОВА - 3
000000 - 1
учебное заведение ТАШ. ШК.-ИНТ.ЮН.ФИЗ.-МАТ. - 1
000701 - 7
000702 - 11
учебное заведение ТАШ.ГИДР.МЕТЕОР.Т-М - 18
000000 - 3
000111 - 1
000217 - 1
000603 - 2
000706 - 40
001502 - 1
001506 - 2
003100 - 1
003101 - 28
003102 - 33
003103 - 4
003104 - 8
003107 - 5
003112 - 2
003113 - 1
030015 - 1
060100 - 5
060104 - 2
060105 - 5
060111 - 3
060204 - 1
080000 - 1
080005 - 1
учебное заведение ТАШ.ГОС.АГРАР.УН-Т - 151
000000 - 2
000101 - 4
000104 - 2
000108 - 1
000109 - 7
000201 - 7
000204 - 32
000207 - 23
000211 - 39
000213 - 2
000214 - 52
…