MS ACCESS: Calcul du rang en fonction de plusieurs critères
Fermé
DJISA_70
Messages postés
10
Date d'inscription
mardi 1 février 2022
Statut
Membre
Dernière intervention
3 février 2022
-
2 févr. 2022 à 00:24
yg_be Messages postés 23417 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 5 janvier 2025 - 3 févr. 2022 à 15:28
yg_be Messages postés 23417 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 5 janvier 2025 - 3 févr. 2022 à 15:28
A voir également:
- MS ACCESS: Calcul du rang en fonction de plusieurs critères
- Access appdata - Guide
- Acer quick access ✓ - Forum Windows
- Acer Quick Access - affichage CapsLock, VerrNum - Forum logiciel systeme
- Exemple base de données access à télécharger gratuit ✓ - Forum Logiciels
- Controller access network - Télécharger - Contrôle parental
10 réponses
yg_be
Messages postés
23417
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
5 janvier 2025
Ambassadeur
1 557
2 févr. 2022 à 11:33
2 févr. 2022 à 11:33
bonjour,
peut-être
peut-être
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
DJISA_70
Messages postés
10
Date d'inscription
mardi 1 février 2022
Statut
Membre
Dernière intervention
3 février 2022
2 févr. 2022 à 13:08
2 févr. 2022 à 13:08
Bonjour yg_be!
Est_ce que m=matière, c=classe, nt=note et id=PK de la table T_NOTE?
Merci pour la réponse. Nous entendons la confirmation pour essayer votre requête.
Est_ce que m=matière, c=classe, nt=note et id=PK de la table T_NOTE?
Merci pour la réponse. Nous entendons la confirmation pour essayer votre requête.
yg_be
Messages postés
23417
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
5 janvier 2025
1 557
2 févr. 2022 à 14:00
2 févr. 2022 à 14:00
en effet.
DJISA_70
Messages postés
10
Date d'inscription
mardi 1 février 2022
Statut
Membre
Dernière intervention
3 février 2022
2 févr. 2022 à 14:21
2 févr. 2022 à 14:21
Re_Bonjour yg_be
Dans votre requête j'ai essayé d'intégrer la composante élève et j'ai ceci:
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 by t1.Classe_id, t1.Eleve_id, t1.Matiere_id, t1.Note_id desc
Mais une boite de dialogue me notifie: "Expression JOIN non supportée".
Pour y voir plus clair, je vous donne les champs de la table T_Notes:
Note_id (PK)
Eleve_id (FK)
Classe_id (FK)
Matiere_id (FK)
Note (numérique)
Dans votre requête j'ai essayé d'intégrer la composante élève et j'ai ceci:
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 by t1.Classe_id, t1.Eleve_id, t1.Matiere_id, t1.Note_id desc
Mais une boite de dialogue me notifie: "Expression JOIN non supportée".
Pour y voir plus clair, je vous donne les champs de la table T_Notes:
Note_id (PK)
Eleve_id (FK)
Classe_id (FK)
Matiere_id (FK)
Note (numérique)
yg_be
Messages postés
23417
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
5 janvier 2025
1 557
2 févr. 2022 à 14:32
2 févr. 2022 à 14:32
Essaie d'abord sans l'élève, et partage une requête qui fonctionne.
DJISA_70
Messages postés
10
Date d'inscription
mardi 1 février 2022
Statut
Membre
Dernière intervention
3 février 2022
2 févr. 2022 à 14:33
2 févr. 2022 à 14:33
OK
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
DJISA_70
Messages postés
10
Date d'inscription
mardi 1 février 2022
Statut
Membre
Dernière intervention
3 février 2022
Modifié le 2 févr. 2022 à 15:06
Modifié le 2 févr. 2022 à 15:06
La requête, telle que vous l'avez proposée, marche. Je constate aussi un champ dénommée Expr1000 qui fait référence aux identifiants des matières.
Mais j'aimerais bien pouvoir intégrer la composante élève?
Mais j'aimerais bien pouvoir intégrer la composante élève?
yg_be
Messages postés
23417
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
5 janvier 2025
1 557
2 févr. 2022 à 15:44
2 févr. 2022 à 15:44
regarde bien la ligne ON avant et après ta modification.
DJISA_70
Messages postés
10
Date d'inscription
mardi 1 février 2022
Statut
Membre
Dernière intervention
3 février 2022
2 févr. 2022 à 16:04
2 févr. 2022 à 16:04
OK. Nous la revoyons.
DJISA_70
Messages postés
10
Date d'inscription
mardi 1 février 2022
Statut
Membre
Dernière intervention
3 février 2022
2 févr. 2022 à 16:54
2 févr. 2022 à 16:54
Je ne m'en sors pas!
yg_be
Messages postés
23417
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
5 janvier 2025
1 557
2 févr. 2022 à 19:03
2 févr. 2022 à 19:03
montre ce que tu as essayé, ainsi que comment c'est dans la requête qui fonctionne.
DJISA_70
Messages postés
10
Date d'inscription
mardi 1 février 2022
Statut
Membre
Dernière intervention
3 février 2022
Modifié le 2 févr. 2022 à 19:27
Modifié le 2 févr. 2022 à 19:27
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;
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;
yg_be
Messages postés
23417
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
5 janvier 2025
1 557
2 févr. 2022 à 23:35
2 févr. 2022 à 23:35
Bien, tu as donc éliminé l'erreur que tu avais à 14:21.
Je ne comprends pas comment la seconde requête "qui fonctionne" donne le rang correct. En es-tu certain?
Je ne comprends pas comment la seconde requête "qui fonctionne" donne le rang correct. En es-tu certain?
DJISA_70
Messages postés
10
Date d'inscription
mardi 1 février 2022
Statut
Membre
Dernière intervention
3 février 2022
3 févr. 2022 à 10:47
3 févr. 2022 à 10:47
Bonjour!
Je veux dire que la requête que vous avez proposée le 02/02/2022 à 11:33 fonctionne correctement mais je ne parviens pas à y intégrer le champ Eleve_id.
Je veux dire que la requête que vous avez proposée le 02/02/2022 à 11:33 fonctionne correctement mais je ne parviens pas à y intégrer le champ Eleve_id.
yg_be
Messages postés
23417
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
5 janvier 2025
1 557
3 févr. 2022 à 12:00
3 févr. 2022 à 12:00
Je ne comprends pas comment la seconde requête (2 févr. 2022 à 19:25) "qui fonctionne" donne le rang correct. En es-tu certain?
DJISA_70
Messages postés
10
Date d'inscription
mardi 1 février 2022
Statut
Membre
Dernière intervention
3 février 2022
3 févr. 2022 à 15:18
3 févr. 2022 à 15:18
Oui parfaitement.
yg_be
Messages postés
23417
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
5 janvier 2025
1 557
3 févr. 2022 à 15:28
3 févr. 2022 à 15:28
Je pense alors que tu n'as pas partagé la source complète de la requête.