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

SQL Firebird Discussion :

[sql] Probème avec une requète jointure


Sujet :

SQL Firebird

  1. #1
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Novembre 2014
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 30
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2014
    Messages : 6
    Points : 5
    Points
    5
    Par défaut [sql] Probème avec une requète jointure
    Bonjour,

    Je suis étudiant en informatique. J'ai un problème pour un exercice de BDD.

    Je vous présente rapidement le propos, je possède:
    Une table étudiants contenant le numéro,le nom et prénom de l'étudiant
    Une table avoir_note contenant le numéro étudiant,les numéros d'épreuves et les note en fonction du numéro d'étudiant et du numéro d'épreuve.
    La question est d'afficher le nom des étudiants qui ont ) l'épreuve 4 une note supérieur à celle obtenue par Dupont Luc à l'épreuve 4.

    J'ai réalisé la requête suivante:

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    select
    E.nometu
    ,E.prenometu
    , A.note 
    from 
    etudiants as E
    , avoir_note as A 
    where 
    (note>(select A.note from etudiants as E, avoir_note as A where (E.nometu='dupont')
    and 
    (E.prenometu='luc') 
    and 
    (E.numetu=A.numetu) 
    and 
    (numepr=4)));

    seulement elle n'affiche pas les résultats corrects. J'obtiens le résultat affiché en dessous alors que la réponse devrait contenir 4 ligne seulement. J'ai du mal écrire la requète. Pourriez-vous m'aider svp?

    Merci

    nometu    | prenometu | note
    -------------+-----------+------
     roblin      | lea       |   15
     macarthur   | leon      |   15
     minol       | luc       |   15
     bagnole     | sophie    |   15
     bury        | marc      |   15
     vendraux    | marc      |   15
     vendermaele | helene    |   15
     besson      | loic      |   15
     godart      | jean-paul |   15
     beaux       | marie     |   15
     turini      | elsa      |   15
     torelle     | elise     |   15
     pharis      | pierre    |   15
     ephyre      | luc       |   15
     leclercq    | jules     |   15
     dupont      | luc       |   15
     marke       | loic      |   15
     dewa        | leon      |   15
     roblin      | lea       |   11
     macarthur   | leon      |   11
     minol       | luc       |   11
     bagnole     | sophie    |   11
    SUITE

  2. #2
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 030
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 030
    Points : 40 928
    Points
    40 928
    Billets dans le blog
    62
    Par défaut
    Bonjour et bienvenue sur le forum

    Citation Envoyé par seyrinian Voir le message
    Bonjour, je suis étudiant en informatique. J'ai un problème pour un exercice de BDD.
    sachez que la politique du forum n'est pas de fournir des réponses à des exercices d'étudiant cf les règles du forum
    Autre critique (gentille ) vous avez des boutons (nommées balises) qui permettent de mettre en forme le code (le bouton #) ou les citations (le bouton "bulle") , utilisez les plutôt que de mettre en rouge vos codes !

    pour reprendre votre requête
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    select E.nometu,E.prenometu, A.note from etudiants as E, avoir_note as A where (note>(select A.note from etudiants as E, avoir_note as A where (E.nometu='dupont') and (E.prenometu='luc') and (E.numetu=A.numetu) and (numepr=4)));
    tout d'abord , normalisez là !
    la jointure à part grâce à la clause <LEFT,FULL,RIGHT> JOIN << faites des recherches
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    select E.nometu,E.prenometu, A.note from etudiants as E JOIN  avoir_note as A ON E.NUMETU=A.NUM_ETU
    WHERE E.nometu='dupont' and E.prenometu='luc'  and numepr=4
    cela ne résoud pas votre problème mais distingue bien la clause de jointure de celle de sélection

    Enfin, je suis étonné ! votre formation utilise Firebird ?
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  3. #3
    Expert confirmé
    Avatar de Ph. B.
    Homme Profil pro
    Freelance
    Inscrit en
    Avril 2002
    Messages
    1 784
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2002
    Messages : 1 784
    Points : 5 915
    Points
    5 915
    Par défaut
    Bonjour,
    Citation Envoyé par SergioMaster Voir le message
    sachez que la politique du forum n'est pas de fournir des réponses à des exercices d'étudiant cf les règles du forum
    Autre critique (gentille ) vous avez des boutons (nommées balises) qui permettent de mettre en forme le code (le bouton #) ou les citations (le bouton "bulle") , utilisez les plutôt que de mettre en rouge vos codes !
    Je vais en rajouter une autre : Donnez un jeu d'essai adéquat avec le résultat attendu !

    Je vais rajouter quelques indications à celles de SergioMaster.

    C'est le raisonnement qui va amener à trouver la requête :
    1. Je cherche la note de l'étudiant Luc Dupont pour l'épreuve 4 => une requête simple
    2. Je cherche tous les étudiants et leur note pour l'épreuve 4 => une requête (à peine moins) simple
    3. De ces 2 points précédents, on peut trouver la requête donnant tous les étudiants et leur note pour l'épreuve 4 et dont la note est supérieure à celle obtenue par Luc Dupont pour la même épreuve.
      On pourrait même dire les requêtes car plusieurs solutions possibles existent...
    Philippe.

  4. #4
    Membre actif
    Homme Profil pro
    Consultant fonctionnel
    Inscrit en
    Décembre 2014
    Messages
    105
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Consultant fonctionnel

    Informations forums :
    Inscription : Décembre 2014
    Messages : 105
    Points : 235
    Points
    235
    Par défaut
    Salut,

    Essaye ça:
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    select E.nometu , E.prenometu , A.note 
    from etudiants as E , avoir_note as A 
    where E.numetu=A.numetu
      and A.numepr=4
      and note>(select C.note from etudiants as B, avoir_note as C 
                  where  B.nometu='dupont' 
                    and  B.prenometu='luc'
                    and  C.numepr=4  -- ou "C.numepr=A.numepr" pour ne pas répéter 4
                );

    Tes erreurs:
    - tes réponses donnaient les notes de toutes les épreuves des élèves > à la note de l'épreuve 4 de dupont
    - Il faut différencier les alias E, A et B, C
    - trop de parenthèses inutiles
    - maintenant tu as toutes les notes de l'épreuve 4 > à la note de dupont (à l'épreuve 4)

    Bon courage.
    solilog

Discussions similaires

  1. [SQL] pb avec une requête envoyée à une bdd chez free
    Par laurentSc dans le forum PHP & Base de données
    Réponses: 11
    Dernier message: 22/02/2008, 16h24
  2. [SQL] Soucis avec une requête
    Par Auden dans le forum PHP & Base de données
    Réponses: 9
    Dernier message: 31/05/2007, 15h07
  3. [SQL] problème avec une requête
    Par ANISSS dans le forum PostgreSQL
    Réponses: 6
    Dernier message: 23/05/2007, 17h56
  4. [SQL] Problème avec une requête sql
    Par bodysplash007 dans le forum PHP & Base de données
    Réponses: 22
    Dernier message: 11/05/2007, 17h30
  5. [SQL] Problème avec une requête
    Par jcmskip dans le forum Langage SQL
    Réponses: 4
    Dernier message: 30/04/2007, 11h41

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