IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Access Discussion :

Requête rang: Prise en compte des paramètres classe et matières [AC-2016]


Sujet :

Access

  1. #1
    Membre régulier
    Homme Profil pro
    Enseignant
    Inscrit en
    Mai 2019
    Messages
    234
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aube (Champagne Ardenne)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2019
    Messages : 234
    Points : 92
    Points
    92
    Par défaut Requête rang: Prise en compte des paramètres classe et matières
    Bonsoir le forum!
    Je cherche à classer des élèves selon la moyenne obtenue par matière et par classe.. La source est une table T_MM_calculee qui stocke les moyennes par
    matières des élèves de toutes les classes
    Comment améliorer cette requête pour que ces deux critères (matière et classe) soient pris en compte?
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT T1.eleve_id, T1.classe_id, T1.matiere_id, T1.MM_calculee, (SELECT Count(MM_calculee) + 1   FROM T_calcul_MM AS T2  WHERE T2.MM_calculee>T1.MM_calculee) AS Rang
    FROM T_calcul_MM AS T1
    ORDER BY T1.MM_calculee DESC;

    djibysadji

    Merci

  2. #2
    Modérateur
    Avatar de bertiny
    Homme Profil pro
    Enseignant
    Inscrit en
    Mars 2013
    Messages
    1 282
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2013
    Messages : 1 282
    Points : 1 831
    Points
    1 831
    Billets dans le blog
    1
    Par défaut
    Bonjour
    Tu fais une première requête qui filtre les classes puis une seconde (celle que tu as proposée) basée sur cette première requête. Car avec ce que tu as fais, çà classe les élèves des toutes les classes.
    Le monde évolue et nous avec. La technologie change les idées de ceux qui s'intéressent et pensent qu'il est nécessaire de changer.
    Oh là!! Que c'est bien de trouver la solution à un problème

    Pensons à améliorer nos connaissances en toute humilité car on apprend tous tous les jours !!!

  3. #3
    Membre régulier
    Homme Profil pro
    Enseignant
    Inscrit en
    Mai 2019
    Messages
    234
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aube (Champagne Ardenne)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2019
    Messages : 234
    Points : 92
    Points
    92
    Par défaut
    Citation Envoyé par djibysadji Voir le message
    Bonsoir le forum!
    Je cherche à classer des élèves selon la moyenne obtenue par matière et par classe.. La source est une table T_MM_calculee qui stocke les moyennes par
    matières des élèves de toutes les classes
    Comment améliorer cette requête pour que ces deux critères (matière et classe) soient pris en compte?
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT T1.eleve_id, T1.classe_id, T1.matiere_id, T1.MM_calculee, (SELECT Count(MM_calculee) + 1   FROM T_calcul_MM AS T2  WHERE T2.MM_calculee>T1.MM_calculee) AS Rang
    FROM T_calcul_MM AS T1
    ORDER BY T1.MM_calculee DESC;

    djibysadji

    Merci
    Bonjour bertiny!
    J'ai essayé de suivre les étapes proposées mais j'ai toujours le même souci!
    J' ai fait une requête pour filtrer les classes:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT T_calcul_MM.classe_id
    FROM T_calcul_MM;

    Ensuite à partir de celle ci j'ai utilisé:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT T1.eleve_id, T1.classe_id, T1.matiere_id, T1.MM_calculee, (SELECT Count(MM_calculee) + 1   FROM T_calcul_MM AS T2  WHERE T2.MM_calculee>T1.MM_calculee) AS Rang
    FROM T_calcul_MM AS T1
    ORDER BY T1.MM_calculee DESC;
    Alors que je veux avoir par exemple ceci
    Elève Classe Matière Moyenne Rang
    A 4ème A Français 16 1er
    B 4ème A Français 14 2ème
    C 6ème A Français 14 1er
    D 6ème A Français 12 2ème
    E 6ème A Français 11 3ème

    Merci

    djibysadji

  4. #4
    Modérateur
    Avatar de bertiny
    Homme Profil pro
    Enseignant
    Inscrit en
    Mars 2013
    Messages
    1 282
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2013
    Messages : 1 282
    Points : 1 831
    Points
    1 831
    Billets dans le blog
    1
    Par défaut
    Bonjour
    J'ai fais un truc comme çà:
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT T1.eleve_id, T1.classe_id, T1.matiere_id, (SELECT Count(MM_calculee) + 1 FROM T_calcul_MM AS T2 WHERE (T2.MM_calculee>T1.MM_calculee) and (T2.classe_id=T1.classe_id) and (T2.matiere_id=T1.matiere_id)) AS BRang, Classe.classe_id, IIf([BRang]=1,"er","ème") AS TRang, Matiere.intitule, Classe.Classe, T1.MM_calculee, [BRang] & [TRang] AS Rang
    FROM Matiere INNER JOIN (Classe INNER JOIN T_calcul_MM AS T1 ON Classe.classe_id = T1.classe_id) ON Matiere.Matiere_id = T1.matiere_id
    ORDER BY Matiere.intitule DESC;

    Tu comprendras mieux avec la base exemple BDRang.zip
    Le monde évolue et nous avec. La technologie change les idées de ceux qui s'intéressent et pensent qu'il est nécessaire de changer.
    Oh là!! Que c'est bien de trouver la solution à un problème

    Pensons à améliorer nos connaissances en toute humilité car on apprend tous tous les jours !!!

  5. #5
    Membre régulier
    Homme Profil pro
    Enseignant
    Inscrit en
    Mai 2019
    Messages
    234
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aube (Champagne Ardenne)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2019
    Messages : 234
    Points : 92
    Points
    92
    Par défaut
    Citation Envoyé par bertiny Voir le message
    Bonjour
    J'ai fais un truc comme çà:
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT T1.eleve_id, T1.classe_id, T1.matiere_id, (SELECT Count(MM_calculee) + 1 FROM T_calcul_MM AS T2 WHERE (T2.MM_calculee>T1.MM_calculee) and (T2.classe_id=T1.classe_id) and (T2.matiere_id=T1.matiere_id)) AS BRang, Classe.classe_id, IIf([BRang]=1,"er","ème") AS TRang, Matiere.intitule, Classe.Classe, T1.MM_calculee, [BRang] & [TRang] AS Rang
    FROM Matiere INNER JOIN (Classe INNER JOIN T_calcul_MM AS T1 ON Classe.classe_id = T1.classe_id) ON Matiere.Matiere_id = T1.matiere_id
    ORDER BY Matiere.intitule DESC;

    Tu comprendras mieux avec la base exemple BDRang.zip
    Bonsoir bertiny!
    Bravo et merci beaucoup pour la solution. Je l'ai testée par rapport à ma base et ça fonctionne.

    djibysadji

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [MySQL-5.6] Requête avec prise en compte des écarts de temps
    Par elgjyn_2 dans le forum Requêtes
    Réponses: 4
    Dernier message: 15/03/2017, 13h12
  2. [2008] Prise en charge des paramètres de la requête
    Par AJ_ing dans le forum SSIS
    Réponses: 6
    Dernier message: 06/04/2011, 18h10
  3. Non prise en compte des paramètres top et left de window.open
    Par laurentSc dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 14/09/2010, 09h24
  4. Réponses: 13
    Dernier message: 31/03/2010, 16h25
  5. Requête avec prise en compte des jours ouvrés
    Par guenfood dans le forum Requêtes et SQL.
    Réponses: 6
    Dernier message: 25/02/2008, 15h36

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo