Скачиваний:
36
Добавлен:
28.06.2014
Размер:
188.42 Кб
Скачать

Московский Энергетический Институт Лабораторная работа №8

Ковех Ольга

Рязанов Михаил

10-11-2010 Задание 8

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

alter procedure work_8_8 as

declare @gpr char (2)

declare @sp char (6)

declare @Counter1 int

declare @Counter2 int

declare @CounterAll int

declare @gpr1 char (6)

declare curs cursor for

select gp, spec, count (*)

from arm

group by gp, spec

order by gp

select @Counter2=0

select @CounterAll=0

open curs

fetch curs into @gpr, @sp, @Counter1

if (@@fetch_status=-2)

begin

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

close curs

return

end

if (@@fetch_status=-1)

begin

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

close curs

return

end

select @gpr1=@gpr

print @sp+' -'+str(@Counter1)

select @Counter2=@Counter2+@Counter1

select @CounterAll=@CounterAll+@Counter1

while (@@fetch_status=0)

begin

fetch curs into @gpr, @sp, @Counter1

if (@gpr1 !=@gpr)

begin

print 'Год приема ' + @gpr1 + ' - ' +str(@Counter2)

select @gpr1=@gpr

select @Counter2=0

end

if (@@fetch_status=-1) break

print @sp + ' - ' +str(@Counter1)

select @Counter2=@Counter2+@Counter1

select @CounterAll=@CounterAll+@Counter1

end

close curs

if (@@fetch_status=-2)

begin

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

return

end

print 'Год приёма ' + @gpr + ' - ' +str(@Counter2)

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

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

deallocate curs

return

Задание 9

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

alter procedure work89 as

declare @ko char (16)

declare @UchZav char (25)

declare @Counter1 int

declare @Counter2 int

declare @CounterAll int

declare @ko1 char (16)

declare curs cursor for

select kat_obuch.kat_obucheniya, vuz.uch_zavedenie, count (*)

from arm 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

select @Counter2=0

select @CounterAll=0

open curs

fetch curs into @ko, @UchZav, @Counter1

if (@@fetch_status=-2)

begin

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

close curs

return

end

if (@@fetch_status=-1)

begin

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

close curs

return

end

select @ko1=@ko

print @UchZav+' - '+str(@Counter1)

select @Counter2=@Counter2+@Counter1

select @CounterAll=@CounterAll+@Counter1

while (@@fetch_status=0)

begin

fetch curs into @ko, @UchZav, @Counter1

if (@ko1 !=@ko)

begin

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

select @ko1=@ko

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 'Категория обучения ' + @ko + ' - ' +str(@Counter2)

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

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

deallocate curs

return

Соседние файлы в папке Ковех,Рязанов