Задание 15
Выдать статистику
по специальностям и учебным заведениям
вашего государства. Отчет должен
начинаться с заголовка и цифры - общего
количества записей по запросу. Далее
совокупность таблиц, где каждая таблица
начинается с заголовка: СПЕЦИАЛЬНОСТЬ
<шифр> - ВСЕГО <цифра>, не равная
нулю, а заканчивается перечнем названий
учебных заведений с цифрами, не равными
нулю.
alter
procedure
lab815 as
declare
@sp char
(6)
declare
@UchZav char
(25)
declare
@Counter1 int
declare
@Counter2 int
declare
@CounterAll int
declare
@sp1 char
(6)
declare
curs
cursor
for
select
spec,
vuz_gorod.nazvanie_vuza,
count
(*)
from
arm join
vuz_gorod on
vuz_k=vuz_gorod.cod_vuza
group
by
spec,
vuz_gorod.nazvanie_vuza
order
by
spec
select
@Counter2=0
select
@CounterAll=0
open
curs
fetch
curs
into
@sp,
@UchZav,
@Counter1
if
(@@fetch_status=-2)
begin
print
'Ошибка
выполнения первого FETCH'
close
curs
return
end
if
(@@fetch_status=-1)
begin
print
'Данные
не найдены'
close
curs
return
end
select
@sp1=@sp
print
@UchZav+'
- '+str(@Counter1)
select
@Counter2=@Counter2+@Counter1
select
@CounterAll=@CounterAll+@Counter1
while
(@@fetch_status=0)
begin
fetch
curs into
@sp,
@UchZav,
@Counter1
if
(@sp1
!=@sp)
begin
print
'Специальность
'
+
@sp1
+
'
- всего '
+str(@Counter2)
select
@sp1=@sp
select
@Counter2=0
end
if
(@@fetch_status=-1)
break
print
@UchZav +
'
- '
+str(@Counter1)
select
@Counter2=@Counter2+@Counter1
select
@CounterAll=@CounterAll+@Counter1
end
close
curs
if
(@@fetch_status=-2)
begin
print
'Ошибка
при выполнении последнего FETCH'
return
end
print
'Специальность
'
+
@sp
+
'
всего '
+str(@Counter2)
print
'----------------------------------'
print
'
всего по запросу - '+str(@CounterAll)
deallocate
curs
return