MS ACCESS: cálculo del rango en función de varios criterios

DJISA_70 Mensajes publicados 10 Estado Miembro -  
yg_be Mensajes publicados 23437 Fecha de registro   Estado Colaborador Última intervención   -
Hola,

Tengo la tabla T_NOTE que contiene todas las notas por materia de todas las clases. Me gustaría en una consulta hacer el ranking en función de la materia y de la clase.

Configuración: Windows / Chrome 97.0.4692.99

10 respuestas

  1. yg_be Mensajes publicados 23437 Fecha de registro   Estado Colaborador Última intervención   Embajador 1 588
     
    hola,
    quizás
    select t1.id,t1.m, t1.c, t1.nt, count(t2.nt) +1 as cl from T_NOTE as t1 left join T_NOTE as t2 on t1.m=t2.m and t1.c=t2.c and t1.nt<t2.nt group by t1.id,t1.m, t1.c, t1.nt order by t1.c, t1.m, t1.nt desc
    0
  2. DJISA_70 Mensajes publicados 10 Estado Miembro
     
    Hola yg_be!
    ¿Es m= materia, c= clase, nt= nota y id= PK de la tabla T_NOTE?

    Gracias por la respuesta. Escuchamos la confirmación para intentar su consulta.
    0
    1. yg_be Mensajes publicados 23437 Fecha de registro   Estado Colaborador Última intervención   1 588
       
      sí, efectivamente.
      0
  3. DJISA_70 Mensajes publicados 10 Estado Miembro
     
    Hola yg_be

    En tu consulta intenté integrar la componente de alumno y tengo esto:

    select t1.Note_id, t1.Eleve_id, t1.Matiere_id, t1.Classe_id, t1.Note, count(t2.Note) +1 as CL
    from T_NOTES as t1 left join T_NOTES as t2
    on t1.Eleve_id=t2.Eleve_id, t1.Matiere_id=t2.Matiere_id and t1.Classe_id=t2.Classe_id and t1.Note<t2.note group="" by="" t1.note_id="" t1.eleve_id="" t1.matiere_id="" t1.classe_id="" t1.note="" order="" desc="" mais="" une="" bo="" de="" dialogue="" m="" join="" non="" support="" pour="" y="" voir="" plus="" clair="" je="" vous="" donne="" les="" champs="" la="" table="" t_notes:="" note_id="" eleve_id="" classe_id="" matiere_id="" note="" />
    0
    1. yg_be Mensajes publicados 23437 Fecha de registro   Estado Colaborador Última intervención   1 588
       
      Intenta primero sin el alumno y comparte una solicitud que funcione.
      0
  4. DJISA_70 Mensajes publicados 10 Estado Miembro
     
    La consulta, tal como la propusiste, funciona. También noto un campo llamado Expr1000 que hace referencia a los identificadores de las materias.
    Pero me gustaría poder integrar la componente alumno.
    0
    1. yg_be Mensajes publicados 23437 Fecha de registro   Estado Colaborador Última intervención   1 588
       
      mira bien la línea ON antes y después de tu modificación.
      0
  5. DJISA_70 Mensajes publicados 10 Estado Miembro
     
    OK. Lo revisamos.
    0
  6. DJISA_70 Mensajes publicados 10 Estado Miembro
     
    No me desatuno.
    0
    1. yg_be Mensajes publicados 23437 Fecha de registro   Estado Colaborador Última intervención   1 588
       
      muéstrame lo que intentaste, así como cómo está en la solicitud que funciona.
      0
  7. DJISA_70 Mensajes publicados 10 Estado Miembro
     
    La requête que j'ai essayée donne le même rang partout
    SELECT t1.Note_id, t1.Eleve_id, t1.Matiere_id, t1.Classe_id, t1.Note, Count(t2.Note)+1 AS cl
    FROM T_NOTES AS t1
    LEFT JOIN T_NOTES AS t2 ON (t1.Classe_id = t2.Classe_id) AND (t1.Matiere_id = t2.Matiere_id) AND (t1.Eleve_id = t2.Eleve_id)
    GROUP BY t1.Note_id, t1.Matiere_id, t1.Classe_id, t1.Note, t1.Eleve_id
    ORDER BY t1.Classe_id, t1.Matiere_id, t1.Note DESC;
    La requête qui fonctionne mais sans la composante élève
    SELECT t1.Note_id, t1.Matiere_id, t1.Classe_id, t1.Note, Count(t2.Note)+1 AS cl
    FROM T_NOTES AS t1
    LEFT JOIN T_NOTES AS t2 ON (t1.Classe_id = t2.Classe_id) AND (t1.Matiere_id = t2.Matiere_id)
    GROUP BY t1.Note_id, t1.Matiere_id, t1.Classe_id, t1.Note
    ORDER BY t1.Classe_id, t1.Matiere_id, t1.Note DESC;
    0
    1. yg_be Mensajes publicados 23437 Fecha de registro   Estado Colaborador Última intervención   1 588
       
      Bien, has eliminado el error que tenías a las 14:21.
      No entiendo cómo la segunda petición "que funciona" da el rango correcto. ¿Estás seguro?
      0
  8. DJISA_70 Mensajes publicados 10 Estado Miembro
     
    ¡Hola!
    Quiero decir que la consulta que propusiste el 02/02/2022 a las 11:33 funciona correctamente, pero no logro incorporar el campo Eleve_id.
    0
    1. yg_be Mensajes publicados 23437 Fecha de registro   Estado Colaborador Última intervención   1 588
       
      ¿Estás seguro de que la segunda consulta (2 feb 2022 a las 19:25) "que funciona" da el rango correcto? No entiendo cómo.
      0
  9. DJISA_70 Mensajes publicados 10 Estado Miembro
     
    Sí, perfectamente.
    0
    1. yg_be Mensajes publicados 23437 Fecha de registro   Estado Colaborador Última intervención   1 588
       
      Creo que entonces no has compartido la fuente completa de la solicitud.
      0