Saludos.
Quisiera que le echaran un vistazo por dos razones: La primera es saber si
está correcta y la segunda si es posible optimizarla ya que puedo notar que
demora algo en ejecutarse.
Aquí va:
select distinct ra.cedula
from materia mat inner join record_academico ra on mat.cod_materia ra.cod_materia
where (ra.cod_periodo = 102) and
(ra.condicion = 6) and
(substring(ra.cod_materia,5,2) = '01') and
(ra.cedula NOT IN (select distinct cedula
from record_academico ra
where
substring(ra.cod_materia,5,2) = '02' or
substring(ra.cod_materia,5,2) = '03' or
substring(ra.cod_materia,5,2) = '04' or
substring(ra.cod_materia,5,2) = '05' or
substring(ra.cod_materia,5,2) = '06' or
substring(ra.cod_materia,5,2) = '07' or
substring(ra.cod_materia,5,2) = '08' or
substring(ra.cod_materia,5,2) = '09' or
substring(ra.cod_materia,5,2) = '10'))
La idea es listar las cédula de Estudiantes nuevos en la Universidad por
período.
Los códigos de materias tienen la siguiente estructura: 06050110 que
quiere decir
Pensum: 06 -> El número del Pensum. Actualmente son solo dos valores:
O 06 ó 07
Escuela: 05 -> En este caso 05 es el código de la Escuela de
Administración
Semestre: 01 -> Número del Semestre!!!...este me indica que la materia
pertenece al Primer Semestre
Numeral: 10 -> Un numero indicador de la materia, no tiene importancia
Condición = 6 -> significa que la materia fue cursada.
Lo que busco comparar si la cédula asociada a la materia no existe en algún
otro semestre. Si es así, entonces es porque el estudiante es NUEVO por
tener solo una materia aprobada del primer semestre.
Gracias de antemano!
Jo
Leer las respuestas