Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторные работы (А-13-07) / Дудкина, Захаров / Отчет по лабораторной работе №8.docx
Скачиваний:
48
Добавлен:
28.06.2014
Размер:
105.68 Кб
Скачать

Задание 11

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

Запрос:

create procedure z11 as

declare @ko char (16)

declare @gor char (20)

declare @it1 int

declare @it2 int

declare @itall int

declare @ko1 char (16)

declare y cursor for

select kat_obuch.kat_obucheniya, vuz_gorod.nazvanie_goroda, count (*)

from cir join vuz_gorod on vuz_k=vuz_gorod.cod_vuza

join kat_obuch on kat_obuch_k=kat_obuch.cod

where gp='91'

group by kat_obuch.kat_obucheniya, vuz_gorod.nazvanie_goroda

order by kat_obuch.kat_obucheniya

select @it2=0

select @itall=0

open y

fetch y into @ko, @gor, @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 @gor+' - '+str(@it1)

select @it2=@it2+@it1

select @itall=@itall+@it1

while (@@fetch_status=0)

begin

fetch y into @ko, @gor, @it1

if (@ko1 !=@ko) begin

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

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

select @ko1=@ko

select @it2=0

end

if (@@fetch_status=-1) break

print @gor + ' - ' +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

Результат:

БИШКЕК - 126

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

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

Всего по запросу - 126

Задание 12

Выдать статистику по специальностям и городам вашего государ¬ства. Отчет должен начинаться заголовком и цифрой - общим количеством записей по запросу. Далее совокупность таблиц, где каждая таблица на-чинается с заголовка: СПЕЦИАЛЬНОСТЬ <шифр> - ВСЕГО <цифра>, не равная нулю, а заканчивается перечнем названий городов с цифрами, не равными нулю.

Запрос:

create procedure z12 as

declare @sp char (6)

declare @gor char (20)

declare @it1 int

declare @it2 int

declare @itall int

declare @sp1 char (6)

declare y cursor for

select spec, vuz_gorod.nazvanie_goroda, count (*)

from cir join vuz_gorod on vuz_k=vuz_gorod.cod_vuza

group by spec, vuz_gorod.nazvanie_goroda

order by spec

select @it2=0

select @itall=0

open y

fetch y into @sp, @gor, @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 @gor+' - '+str(@it1)

select @it2=@it2+@it1

select @itall=@itall+@it1

while (@@fetch_status=0)

begin

fetch y into @sp, @gor, @it1

if (@sp1 !=@sp) begin

print 'Специальность ' + @sp1 + ' ВСЕГО ' +str(@it2)

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

select @sp1=@sp

select @it2=0

end

if (@@fetch_status=-1) break

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

select @it2=@it2+@it1

select @itall=@itall+@it1

end

close y

if (@@fetch_status=-2) begin

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

return

end

print 'Специальность ' + @sp + ' ВСЕГО ' +str(@it2)

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

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

deallocate y

return

Результат:

БИШКЕК - 7

П-К КИРШЕЛК - 28

Специальность 000000 ВСЕГО 35

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

БИШКЕК - 854

Специальность 000655 ВСЕГО 854

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

БИШКЕК - 154

Специальность 001001 ВСЕГО 154

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

БИШКЕК - 49

Специальность 001004 ВСЕГО 49

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

БИШКЕК - 7

Специальность 001101 ВСЕГО 7

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

БИШКЕК - 63

Специальность 001201 ВСЕГО 63

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

БИШКЕК - 21

Специальность 001202 ВСЕГО 21

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

БИШКЕК - 77

Специальность 001502 ВСЕГО 77

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

БИШКЕК - 7

Специальность 001504 ВСЕГО 7

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

БИШКЕК - 14

Специальность 001505 ВСЕГО 14

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

БИШКЕК - 14

Специальность 001801 ВСЕГО 14

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

БИШКЕК - 70

Специальность 002101 ВСЕГО 70

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

БИШКЕК - 138

Специальность 002105 ВСЕГО 138

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

БИШКЕК - 168

Специальность 002201 ВСЕГО 168

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

БИШКЕК - 133

Специальность 002901 ВСЕГО 133

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

БИШКЕК - 42

Специальность 002903 ВСЕГО 42

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

БИШКЕК - 28

Специальность 002907 ВСЕГО 28

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

БИШКЕК - 35

Специальность 002908 ВСЕГО 35

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

БИШКЕК - 77

Специальность 002910 ВСЕГО 77

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

БИШКЕК - 7

Специальность 050202 ВСЕГО 7

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

БИШКЕК - 7

Специальность 052312 ВСЕГО 7

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

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