Matricula SP

También podría gustarte

Está en la página 1de 3

declare @cicloactual int,@CodCurso int,@ini int,@cicloant int,@ciclo int, @Nombr eCurso varchar(50),@NroMatricula nvarchar(2),@temp varchar(max),@AlumId int set @cicloactual

= 3 set @AlumId =1 create table #Matricula (CodCurso int, NombreCurso varchar(50),Ciclo nvarchar(2) ,NroMatricula nvarchar(2)) if @cicloactual %2=0 begin set @ini=2 while @ini <=@cicloactual begin declare MisCursos cursor for ( select CurId, No mbre,Ciclo from curso where Ciclo =@ini ) open MisCursos fetch MisCursos into @CodCurso,@NombreC urso,@ciclo while (@@FETCH_STATUS = 0) begin if exists (select C.CurId,Nombr e ,PromedioFinal from matricula m inner join curso c on m.CurId =c.CurId where AlumId =@AlumId and m.CurId =@CodCurso and PromedioFinal <10.5 and Ciclo =@in i ) insert i nto #Matricula (CodCurso , NombreCurso,Ciclo ,NroMatricula ) select C.CurId,Nom bre,Ciclo,((select count( C.CurId)+1 from matricula m inner join curso c on m.Cu rId =c.CurId where A lumId =@AlumId and m.CurId =@CodCurso and PromedioFinal <10.5 )) from ma tricula m inner join curso c on m.CurId =c.CurId where A lumId =@AlumId and m.CurId =@CodCurso and SemestreId ='2012-II'and PromedioFin al <10.5 fetch M isCursos into @CodCurso,@NombreCurso,@ciclo end close MisCursos deallocate MisCursos set @ini =@ini +2 end set @ini=2 while @ini<=10 begin if not exists( select c.CurId ,Codigo ,N ombre ,Ciclo from curso c inner join matricula m on c.CurId =m.CurId where (ci clo =2) and tipo=0 ) insert into #Matricula(CodCurso , NombreCurso,Ciclo ,NroMatricula) select CurId ,Nombre ,Ciclo,1 from curs o where (ciclo =@ini and tipo=0 ) set @ini =@ini +2 end end else

begin set @ini=1 while @ini <=@cicloactual begin declare MisCursos cursor for ( select CurId, No mbre,Ciclo from curso where Ciclo =@ini ) open MisCursos fetch MisCursos into @CodCurso,@NombreC urso,@ciclo while (@@FETCH_STATUS = 0) begin if exists (select C.CurId,Nombr e ,PromedioFinal from matricula m inner join curso c on m.CurId =c.CurId where AlumId =@AlumId and m.CurId =@CodCurso and PromedioFinal <10.5 and Ciclo =@in i ) insert i nto #Matricula (CodCurso , NombreCurso,Ciclo ,NroMatricula ) select C.CurId,Nom bre,Ciclo,((select count( C.CurId)+1 from matricula m inner join curso c on m.Cu rId =c.CurId where A lumId =@AlumId and m.CurId =@CodCurso and PromedioFinal <10.5 )) from ma tricula m inner join curso c on m.CurId =c.CurId where A lumId =@AlumId and m.CurId =@CodCurso and SemestreId ='2012-II'and PromedioFin al <10.5 fetch M isCursos into @CodCurso,@NombreCurso,@ciclo end close MisCursos deallocate MisCursos set @ini =@ini +2 end set @ini=1 while @ini<=9 begin if not exists( select c.CurId ,Codigo ,N ombre ,Ciclo from curso c inner join matricula m on c.CurId =m.CurId where (ci clo =2) and tipo=0 ) insert into #Matricula(CodCurso , NombreCurso,Ciclo ,NroMatricula) select CurId ,Nombre ,Ciclo,1 from curs o where (ciclo =@ini and tipo=0 ) set @ini =@ini +2 end end insert into #Matricula (CodCurso , Nombr eCurso,Ciclo ,NroMatricula ) select distinct cp.CurId ,nombre,ciclo,1 from curso c left join curso_prerequisit o cp on c.CurId =cp.CurId left join matricula m on m.curid= cp.Prerequisito where ciclo =@cicloactual and AlumId =@A lumId and PromedioFinal >10.5 select distinct * from #Matricula order by CodCu rso

drop table #Matricula

También podría gustarte