Comunidad de diseño web y desarrollo en internet online

Consulta Sql Para Obtener Cuadro de Honor

Citar            
MensajeEscrito el 15 May 2015 04:12 am
Muy Buenas Noches..

Les envió un saludo muy cordial, a modo de realizar mi consulta, quiero aprovechar la información que tengo en una tabla sobre unas notas de diferentes materias llevadas en un colegio y sus promedios, para obtener el cuadro de honor que consiste en, sacar las 1ª y 2ª notas más altas de cada curso, le di todas las vueltas posibles según mis conocimientos y no logro obtener los resultados necesarios, más allá de este primer inconveniente surge otro que es, en algunos cursos pueden existir dos e incluso tres estudiantes que tengas la 1ª nota más alta y/o la 2ª mejor, los cuales tiene también que salir en la lista a obtener.

Sin dudar de su apoyo me despido reiterando mis saludos y agradeciendo por sus soportes.

Atte. : Jaime Mariscal

Por jaimemcal

1 de clabLevel



 

firefox
Citar            
MensajeEscrito el 15 May 2015 08:47 pm
1. SElecciona todos los resultados del periodo
2. De los resultados obtenidos elije las más altas.
3. de las mas altas debes tener otra forma de saber cual es la mas alta.

por ejemplo: alguien con 8,8,8,8,8 => promedio 8

debe ser mayor a alguien con 8,7,10,7,8 => promedio 8


sin embargo esto depende de la metodologia que elijas para determinar, cual sera el mayor promedio.

ES más un trabajo de logica, definelo y despues te podemos ayudar con las querys y demas.

Por elporfirio

Claber

652 de clabLevel

1 tutorial

Genero:Masculino  

FullStack Web Developer

chrome
Citar            
MensajeEscrito el 18 May 2015 07:13 am
Tengo una vista similar a esta ordenada por cursos y promedios: el nombre de mi vista es evaluaciones

http://www.subirimagenes.net/i/150518084923605600.jpg

y requiero obtener una tabla como la siguiente:

http://www.subirimagenes.net/i/150518085140935588.jpg

podria ser obtenidos en 1 o dos consultas

Ya consegui realizar la primera parte.. La obtencion de las 1ras mejores notas, lo que aun no puedo sacar son las 2das mejores, si me pudieran ayudar les estare muy agradecido, por si alguien requiera la misma informacion comparto la primera solucion que obtuve para obtener los 1ras mejores notas.

Por cierto estoy trabajando sobre una vista que contiene los nombres completos de los estudantes, un id estudiante, su curso y los promedios correspondientes, de lo cual solo requiero el nombre, el curso y la nota, para lo cual utilizo lo siguiente:

SELECT a.Curso, a.NombreEstudiante, a.Promedio, b.Promedio


FROM evaluaciones a, ( SELECT max( promedio ) AS promedio
FROM evaluaciones
GROUP BY curso ) b


WHERE (a.Promedio = b.Promedio)
GROUP BY a.Curso

Asi de simple, espero me puedan ayudar con los faltantes 2dos lugares, gracias de antemano.

Por mi parte tambien seguire insistiendo y si lo consigo lo publicare.

Por jaimemcal

1 de clabLevel



 

firefox
Citar            
MensajeEscrito el 18 May 2015 03:07 pm
Oie que genial, ya te entendimos mejor, podrías pasarnos una tabla SQL con datos??

así ya te podremos dar mejor la solución en vez de solo supuestos.

Gracias

Por elporfirio

Claber

652 de clabLevel

1 tutorial

Genero:Masculino  

FullStack Web Developer

chrome
Citar            
MensajeEscrito el 18 May 2015 03:39 pm
YA casi la tenias completa amigo, tu sacas los primeros lugares así:

Código MySQL :

SELECT curso, nombre, max(promedio)
FROM promedios
Group by Curso;

Los segundos lugares serian como

Código MySQL :

SELECT curso, nombre, max(promedio)
FROM promedios
WHERE promedio NOT IN (select max(promedio) FROM promedios Group by Curso)
Group by Curso;


De aquí ya es solo agrupar :) y despues aplicar un "order by"

Saludos

Por elporfirio

Claber

652 de clabLevel

1 tutorial

Genero:Masculino  

FullStack Web Developer

chrome

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.