Cita: tabla aspirantes
documento
nombre
nota_u<!--nota examen universidad-->
nota_es<!--nota examen de estado-->
fecha DATETIME <--- fecha de inscripción
Yo lo enfocaria como un problema de ordenación...
Preguntate: ¿Es importante el orden de las carreras?
Para cada carrera buscaria la manera de obtener la lista de estudiantes ordenada por los "meritos" que tenga cada uno de manera que los "
cupo" primeros serian los inscritos en esa carrera. Al atacar la segunda carrera debes quitar (NOT IN (...algo...)) los que se hayan inscrito en la primera y asi sucesivamente.
El orden de prioridad que haya elegido cada alumno en cada carrera es uno de los meritos del estudiante a tener en cuenta, es decir un estudiante que ha elegido con prioridad 1 la carrera X debe tener mas meritos o prioridad que otro que la elige con prioridad 2....por encima de notas y fecha de inscripción... pero ojo me inscribire en mi segunda opción siempre que no pueda entrar en la primera....es decir primero hay que matricular a TODOS lo que entren en la carrera de su primera opción...
Un algoritmo que pase por todas las carreras, y prioridades deberia inscribir a un numero de estudiantes igual o inferior a sumatorio de cupos ... no forzosamente a todos los aspirantes.
Para nota deberías obtener al final un listado de la oferta no cubierta o de la demanda no satisfecha.
Un ejercicio divertido... no para el estudiante y menos para el aspirante!!!!