SQL; El que resuelve esto es un capo

Iniciado por astinx, 4 Noviembre 2011, 18:09 PM

0 Miembros y 1 Visitante están viendo este tema.

astinx

Hola, hace ya un día que estoy peliando con la misma f0cking consulta de SQL, es sencillo pero a la vez muy molesto porque todas las soluciones que me han propuesto mis profesores y mis compañeros tiran resultados erroneos. Realmente simple, es lo siguiente:

Listar nombre y apellido de los alumnos que hayan cursado todos los cursos.

Acá tienen la tabla para hacerse una idea.

PERSONA = (DNI, Apellido, Nombre, Fecha_Nacimiento, Estado_Civil, Genero)
ALUMNO = (DNI, Legajo, Año_Ingreso)
PROFESOR = (DNI, Matricula, Nro_Expediente)
TITULO = (Cod_Titulo, Nombre, Descripción)
TITULO-PROFESOR = (Cod_Titulo, DNI, Fecha)
CURSO = (Cod_Curso, Nombre, Descripción, Fecha_Creacion, Duracion)
ALUMNO-CURSO = (DNI, Cod_Curso, Año, Desempeño, Calificación)
PROFESOR-CURSO = (DNI, Cod_Curso, Fecha_Desde, Fecha_Hasta)

Yo ya trate con los siguientes razonamientos

1) Usar conjuntos; saco el conjunto de los alumnos que no cursaron ninguna materia y se lo resto al conjunto de alumnos en general, con un pequeño problema; el complemento de NINGUNO no es TODOS, sino ALGUNOS

2) Usar NOT EXISTS; Lo encare asi "Los alumnos que no hayan no cursado ninguna materia", el resultado es el mismo que con conjuntos, me devuelve los alumnos que hayan cursado al menos 1 materia

3) Usar COUNT; este si funciona, pero es recontra ineficiente, ya que ha recibido tantas criticas estoy un poco desesperado por encontrar una consulta que haga lo que el enunciado pide y no use COUNT

Si ha alguno de ustedes se les ocurre alguna idea, se los agradecería un montón, además cualquier código que se les venga a la mente, si quieren lo publican y yo lo tiro en la base de datos y les digo que tal salio.

Muchas gracias por detenerse a leer.

Aproposito, acá les dejo el link del tema donde publique el código del COUNT:
http://foro.elhacker.net/desarrollo_web/consulta_sqllistar_elementos_que_estan_presentes_en_todos_los_elementos_de_otra-t343529.0.html
La programación hoy en día es una carrera entre los ingenieros de software intentando construir mejores y más eficientes programas a prueba de idiotas y el Universo intentando producir mejores y más grandes idiotas. De momento, el Universo está ganando