Seleccionar un nivel académico

Tengo 2 tablas uno de docentes y otro de sus niveles académicos de cada uno; ambos relacionados por iddoc. Quiero que en una consulta me arroje todos los docentes solo con su nivel académico más alto (ya sea licenciado, maestría o doctorado).

1 respuesta

Respuesta
1
¿Cómo especificas los niveles académicos? Si fuese numérico: Nivel 1, 2, 3... lo puedes hacer con la función Máx()
Gracias por la atención.. pero aclarare un poco más el asunto
en la consulta de access he seleccionado los sgtes campos
de la tabla doente( iddoc-paterno-materno-nombres) /*hay otros datos más */
De la tabla nivel acá (nivel) /* hay otros campos más como institución, años de grado etc */
Ejecutando la consulta con solo esos campos - colocado entre paréntesis - y aplicando la func max por medio de totales logro que salga solo el docente con su más alto nivel... pero cuando adiciono algún otro campo más a la consulta de la tabla nivel acad, por ejem: institución o año de grado, ya no me sale solo el más alto nivel, sino cada docente con cada uno de sus niveles, es decir me arroja todas las posibles relaciones.
Ton quisiera que me ayudaras a solucionar ese detalle y que siga apareciendo solo el más alto nivel así adiciones algún otro campo de la tabla
Nuevamente gracias por tu tiempo
Lo que me dices es completamente lógico, vamos a ver: se aplicas totales lo que haces es agrupar por un campo (docente) y elegir el máximo del nivel académico, te sale un registro por docente, pero si añades el año por ejemplo, también estás agrupando por este campo y te saldrá un registro por cada docente-año distinto y el máximo de ese docente-año. En realidad ¿qué quieres conseguir?
Precisare más mi problems
En tabla DOCENTE tengo: iddoc, paterno, materno, nombre, sexo, dirección, teléfono, lugarnac, etc
en tabla NIVEL tengo: id, iddoc, niveleacad(bachiller, maestría, doctorado), institución que obtuvo del grado, año que obtuvo el grado, etc.
Lo que busco es una consulta de ambas tablas donde me muestre solo:
iddoc/paterno/mateno/nombre/nivelacad(SOLO EL MAS ALTO)-institucion y año
*quiero que solo me arroje todos los docentes con su nivel academico mas alto(ya sea  o licenciado o maestria o doctorado) la institucion del grado y año del grado
**como dije antes con fun max me sale "bien" hasta nivelacad... pero quiero que tambien me arroje la institucion del gradoy el año q obtuvo del grado , sin q muestre los nivels inferiores de cada docente(es como una especie de filtro)
Espero no cansarte o en todo quizá tenga que replantear mis tablas y campos
Muchas gracias, nuevamente.
Dos tablas: Docente (IdDocente, Nombre) y Nivel (IdDocente, Nivel, Año)
Creamos una 1ª consulta que llamaremos Consulta1:
SELECT IdDocente, Max(Nivel.Nivel) AS MáxDeNivel
FROM Nivel
GROUP BY IdDocente;
Como las consultas de selección actúan exactamente igual que las tablas, creamos otra consulta que una la Consulta1 con las tablas Docente y Nivel:
SELECT Docente.IdDocente, Docente.Nombre, Nivel.Nivel, Nivel.Año
FROM (Nivel INNER JOIN Consulta1 ON (Nivel.IdDocente = Consulta1.IdDocente) AND (Nivel.Nivel = Consulta1.MáxDeNivel)) INNER JOIN Docente ON Nivel.IdDocente = Docente.IdDocente;

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas