ноненоеое. БД.Иэоз 66-21.Чуфаринов.Н.А.. Министерство общего и профессионального образования российской федерации
Скачать 4.3 Mb.
|
Задание 5Выдать статистику по учебным заведениям и категориям обучения вашего государства, включая цифры по выпуску 1993 года и по приему 1990 года по каждой категории обучения. Отчет должен начинаться с заголовка и цифры - общего количества записей по запросу. Далее совокупность таблиц, где каждая таблица начинается с заголовка : <название учебного заведения> - <цифра>, не равная нулю, а заканчивается перечнем категорий обучения с тремя цифрами: 1) всего (не равная нулю); 2) выпуск 1993 г.; 3) прием 1990 г. create procedure zapr5 as declare @v1 char(20) declare @v2 char(20) declare @ko char(25) declare @it1 integer declare @it2 integer declare @it93 integer declare @it90 integer declare @itall integer select count(*) as 'Общее число' from uzb declare cur cursor for select vuz_gorod.nazvanie_vuza,kat_obuch.kat_obucheniya, count(*), SUM (case when gp='90'then 1 else 0 end), SUM (case when gok='93'then 1 else 0 end) from uzb join vuz_gorod on vuz_k=vuz_gorod.cod_vuza join kat_obuch on kat_obuch_k=kat_obuch.cod group by vuz_gorod.nazvanie_vuza,kat_obuch.kat_obucheniya order by vuz_gorod.nazvanie_vuza,kat_obuch.kat_obucheniya select @it2=0 select @itall=0 select @it93=0 select @it90=0 open cur fetch cur into @v1,@ko,@it1,@it90,@it93 if (@@fetch_status=-2) begin print ‘Ошибка при выполнении первого FETCH' close cur return end if (@@fetch_status=-1) begin print 'Данные не найдены' close cur return end select @v2=@v1 print @ko+'-'+str(@it1)+' '+str(@it90)+' '+str(@it93) select @it2=@it2+@it1 select @itall=@itall+@it1 while (@@fetch_status=0) begin fetch cur into @v1, @ko, @it1, @it90, @it93 if (@v1!=@v2) begin print 'Учебное заведение '+@v2+'-'+ str (@it2) print '----------------------------------' select @v2=@v1 select @it2=0 end if (@@fetch_status=-1) break print @ko + ' - ' +str(@it1)+' '+str(@it90)+' '+str(@it93) select @it2=@it2+@it1 select @itall=@itall+@it1 end close cur if (@@fetch_status=-2) begin print 'Ошибка при выполнении FETCH' return end print 'учебное заведение ' + @v1 + ' - ' +str(@it2) print '----------------------------------' print 'всего по запросу-'+str(@itall) deallocate cur return Задание 6 Выдать статистику по учебным заведениям и годам окончания вашего государства. Отчет должен начинаться с заголовка и цифры - общего количества записей по запросу. Далее совокупность таблиц, где каждая таблица начинается с заголовка: <название учебного заведения> <цифра>, не равная нулю, а заканчивается перечнем годов окончания с цифрами, не равными нулю. create procedure zapr6 as declare @v1 char(20) declare @v2 char(20) declare @gok char(25) declare @it1 integer declare @it2 integer declare @itall integer select count(*) as 'Общее число' from uzb declare cur cursor for select vuz_gorod.nazvanie_vuza, gok, count(*) from uzb join vuz_gorod on vuz_k=vuz_gorod.cod_vuza group by vuz_gorod.nazvanie_vuza,gok order by vuz_gorod.nazvanie_vuza select @it2=0 select @itall=0 open cur fetch cur into @v1,@gok,@it1 if (@@fetch_status=-2) begin print 'Ошибка при выполнении первого FETCH' close cur return end if (@@fetch_status=-1) begin print 'Данные не найдены' close cur return end select @v2=@v1 print @gok+'-'+str(@it1) select @it2=@it2+@it1 select @itall=@itall+@it1 while (@@fetch_status=0) begin fetch cur into @v1, @gok, @it1 if (@v1!=@v2) begin print 'учебное заведение '+@v2+'-'+ str (@it2) print '----------------------------------' select @v2=@v1 select @it2=0 end if (@@fetch_status=-1) break print @gok + ' - ' +str(@it1) select @it2=@it2+@it1 select @itall=@itall+@it1 end close cur if (@@fetch_status=-2) begin print 'Ошибка при выполнении FETCH' return end print 'учебное заведение ' + @v1 + ' - ' +str(@it2) print '----------------------------------' print 'всего по запросу-'+str(@itall) deallocate cur return Задание 7 Выдать статистику по выпуску 1994 года вашего государства по всем учебным заведениям и категориям обучения. Отчет должен начинаться с заголовка и цифры - общего количества записей по запросу (выпуску 1994 г.). Далее перечень таблиц, где каждая таблица начинается с заголовка: <название учебного заведения> - <цифра>, не равная нулю, а заканчивается перечнем категорий обучения с цифрами, не равными нулю. create procedure zapr7(@gk char(2)) as declare @v1 char(20) declare @v2 char(20) declare @ko char(25) declare @it1 integer declare @it2 integer declare @itall integer select count(*) as 'Общее число' from uzb declare cur cursor for select vuz_gorod.nazvanie_vuza, kat_obuch.kat_obucheniya, count(*) from uzb join vuz_gorod on vuz_k=vuz_gorod.cod_vuza join kat_obuch on kat_obuch_k=kat_obuch.cod where gok=@gk group by vuz_gorod.nazvanie_vuza,kat_obuch.kat_obucheniya order by vuz_gorod.nazvanie_vuza select @it2=0 select @itall=0 open cur fetch cur into @v1,@ko,@it1 if (@@fetch_status=-2) begin print 'Ошибка при выполнении первого FETCH' close cur return end if (@@fetch_status=-1) begin print 'Данные не найдены' close cur return end select @v2=@v1 print @ko+'-'+str(@it1) select @it2=@it2+@it1 select @itall=@itall+@it1 while (@@fetch_status=0) begin fetch cur into @v1, @ko, @it1 if (@v1!=@v2) begin print 'учебное заведение '+@v2+'-'+ str (@it2) print '----------------------------------' select @v2=@v1 select @it2=0 end if (@@fetch_status=-1) break print @ko + ' - ' +str(@it1) select @it2=@it2+@it1 select @itall=@itall+@it1 end close cur if (@@fetch_status=-2) begin print 'Ошибка при выполнении FETCH' return end print 'учебное заведение ' + @v1 + ' - ' +str(@it2) print '----------------------------------' print 'всего по запросу-'+str(@itall) deallocate cur return create function zapr71(@gk char(2)) returns int as begin declare @v1 char(20) declare @v2 char(20) declare @ko char(25) declare @it1 integer declare @it2 integer declare @itall integer declare cur cursor for select vuz_gorod.nazvanie_vuza, kat_obuch.kat_obucheniya, count(*) from uzb join vuz_gorod on vuz_k=vuz_gorod.cod_vuza join kat_obuch on kat_obuch_k=kat_obuch.cod where gok=@gk group by vuz_gorod.nazvanie_vuza,kat_obuch.kat_obucheniya order by vuz_gorod.nazvanie_vuza select @it2=0 select @itall=0 open cur fetch cur into @v1,@ko,@it1 if (@@fetch_status=-2) begin -- print 'Ошибка при выполнении первого FETCH' close cur return @itall end if (@@fetch_status=-1) begin -- print 'Данные не найдены' close cur return @itall end select @v2=@v1 --print @ko+'-'+str(@it1) select @it2=@it2+@it1 select @itall=@itall+@it1 while (@@fetch_status=0) begin fetch cur into @v1, @ko, @it1 if (@v1!=@v2) begin -- print 'учебное заведение '+@v2+'-'+ str (@it2) -- print '----------------------------------' select @v2=@v1 select @it2=0 end if (@@fetch_status=-1) break -- print @ko + ' - ' +str(@it1) select @it2=@it2+@it1 select @itall=@itall+@it1 end close cur if (@@fetch_status=-2) begin --print 'Ошибка при выполнении FETCH' return @itall end --print 'учебное заведение ' + @v1 + ' - ' +str(@it2) --print '----------------------------------' --print 'всего по запросу-'+str(@itall) deallocate cur return @itall +end |