SQL.... SQL......
Las respuestas en los dos últimos pisos son incorrectas. El comando superior toma las primeras filas de datos en lugar de las filas más grandes. Por lo tanto, la declaración anterior comienza a salir mal desde la cuarta fila, y solo una. La fila se obtiene de la cuarta fila. Los datos en realidad deberían tomar tantas filas como tipos de cursos haya.
Lo siguiente es lo que le escribí. Es más complicado, pero el resultado es correcto. Construí 3 tablas de acuerdo con sus requisitos. La estructura de la tabla es la siguiente:
. Horario del curso Curso ID del curso
c cname cid
Nombre de la tabla de estudiantes ID de estudiante clase
s nombre sid clase
Id de estudiante de la tabla de calificaciones calificación de identificación del curso
r sid cid resultado
La declaración es:
seleccione cname 'curso', t1st.sname 'primer lugar', t2nd.sname ' segundo lugar' , t3rd.sname 'tercer lugar' de c,
(seleccione sname, cid de s, (seleccione r.sid, r.cid, r.resultado de r, (seleccione max(resultado ) resultado, cid del grupo r por cid) t1
donde r.cid = t1.cid y r.result = t1.result) t11 donde s.sid = t11.sid) t1st,
(seleccione sname, cid de s, (seleccione r.sid, r.cid, r.result de r, (seleccione resultado máximo (resultado), cid de r donde el resultado no está en
(seleccione max(resultado) de r grupo por cid) grupo por cid) t2 donde r.cid = t2.cid y r.result = t2.result) t22
donde s.sid = t22.sid ) t2nd ,
(seleccione sname, cid de s, (seleccione r.sid, r.cid, r.result de r, (seleccione resultado máximo (resultado), cid de r donde el resultado no está en
(seleccione max(resultado) del grupo r por cid) y el resultado no sea (seleccione max(resultado) de r donde el resultado no sea (seleccione
max(resultado) del grupo r por cid ) agrupar por cid) agrupar por cid) t3 donde r.cid = t3.cid y r.result = t3.result) t33
donde s.sid = t33.sid) t3rd
donde c.cid = t1st.cid y c.cid = t2nd.cid y c.cid = t3rd.cid;
Ingresé los datos y probé la declaración anterior. Copiaré el. información del resultado para usted, los primeros tres resultados son el contenido de las tres tablas respectivamente, y el último resultado es el resultado de la declaración anterior. Puede consultar los datos de la tabla para ver si el resultado final es correcto.
Identificación del curso del curso
---------- ----------
yuwen 001
shuxue 002
yingyu 003
(3 filas afectadas)
Nombre ID de estudiante clase
--- ------- ---------- -----
zhangsan 10001 c1
lisi 10002 c2
wangwu 10003 c3
(3 filas afectadas)
ID de estudiante Puntuación de ID de curso
---------- ---- ------ -----------
10001 001 100
10002 001 80
10003 001 60
10001 002 60
10002 002 80
10003 002 100
10001 003 80
10002 003 100
10003 003 60
(9 filas afectadas)
Primer lugar, segundo lugar, tercer lugar en el curso
--- - ------ ---------- ---------- ----------
yuwen zhangsan lisi wangwu p >
yingyu lisi zhangsan wangwu
shuxue wangwu lisi zhangsan
(3 filas afectadas)
Si no entiende cuál es el declaración significa: Puedes agregarme en QQ: 121674018,
Te enviaré el proceso de respuesta.