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

Langage SQL Discussion :

Requête SQL sur 2 tables


Sujet :

Langage SQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    57
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 57
    Par défaut Requête SQL sur 2 tables
    Bonjour,

    tout d'abord, merci d'avance pour vos réponses !!

    Alors voici le problème :

    J'ai 2 tables :
    - Etudiants : n°etudiant / nom / prénom / n°stage
    - Stages : n°stage / nom / sujet / NbStagiaireMaxi

    Prérequis :
    - un étudiant peut participer à 1 et 1 seul stage.
    - un stage peut avoir au maxi autant d'étudiants que NbStagiaireMaxi.
    - un étudiant n'est pas forcément affecté à un stage.

    Résultat souhaité :
    Je voudrais, par une requête SQL avoir le nom de tous les stages qui ont un nombre d'étudiant inférieur à son nombre maxi de stagiaire. En clair, les stages sur lesquels il reste des places !!

    Tentative de requête (parmis tant d'autres restant infructueuses jusqu'à maintenant) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Select Nom_stage
    From Stages 
    Where Stages.Nombre_stagiaire_souhaites > 
    ( 
      Select Count (Etudiants.Numero_stage) 
      From Etudiants, Stages 
      Where Etudiants.Numero_stage = Stages.Numero_stage)
    => Le résultat est vide, et avec d'autres manipulations de la requête, à plusieurs reprises il m'est demandé de passer un numéro_Stage en paramètre de ma requête.

    La requête est hyper simple, mais je n'arrive pas à la modéliser correctement pour qu'elle fonctionne..

    Merci d'avance et bon weekend...

  2. #2
    J1
    J1 est déconnecté
    Membre expérimenté Avatar de J1
    Inscrit en
    Mai 2004
    Messages
    321
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 321
    Par défaut
    Bonsoir,

    en reprenant les noms de colonnes que tu donnes dans le descriptif de tes tables :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    SELECT *
    FROM Stages S
    WHERE NbStagiaireMaxi > (
    	SELECT COUNT(*) 
    	FROM Etudiants 
    	WHERE [n°stage]=S.[n°stage])

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    57
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 57
    Par défaut Sa marche toujours pas =)
    J'ai essayé avec ta solution, mais il me demande un paramètre de n° de stage avant l'exécution ???? :/

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     SELECT *
    FROM Stages AS S
    WHERE S.NbStagiaireMaxi>
    (SELECT COUNT(*)
    FROM Etudiants
    WHERE [numero_stage]=S.[numero_stage]
    );
    Quand je lui donne un paramètre du genre
    1 = 1 réponse
    2 = 2 réponses
    3 = 3 réponses

    mais malheureusement dans les réponses données il y a des stages déjà complets qui apparaissent !!!


    Merci d'avance je suis devant une impasse !!

    Arkante

  4. #4
    J1
    J1 est déconnecté
    Membre expérimenté Avatar de J1
    Inscrit en
    Mai 2004
    Messages
    321
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 321
    Par défaut
    La requête ne devrait pas te demander de paramètres. Pourrais-tu t'assurer que tu as bien adapté la requête aux noms de colonnes de ta base de données ?
    Si c'est bien le cas et que l'erreur subsiste, pourrais-tu, si tu travailles sous Access, copier le SQL dans une nouvelle requête pour le réexécuter ?

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    57
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 57
    Par défaut Nouvelles données
    Mouarf quel débile je fais^^^

    j'ai pas bien remplacé la variable NbStagiaireMaxi :/

    Sa marche maintenant .

    Merci pour votre aide !

    Voici le code final :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     SELECT Nom_entreprise
    FROM Stages AS S
    WHERE S.nombre_stagiaires_souhaites>
    (SELECT COUNT(*)
    FROM Etudiants
    WHERE [numero_stage]=S.[numero_stage]
    );
    Bon weekend...

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

Discussions similaires

  1. [SQL] Problème avec script de pagination et requête sql sur deux tables
    Par psychoBob dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 12/06/2006, 14h06
  2. problème de requête SQL sur 3 tables pour un while
    Par carmen256 dans le forum Requêtes
    Réponses: 3
    Dernier message: 13/04/2006, 16h55
  3. requêtes sql sur plusieurs tables
    Par zahiton dans le forum Langage SQL
    Réponses: 4
    Dernier message: 25/11/2005, 10h59
  4. [SQL] requêtes SQL sur plusieurs tables
    Par zahiton dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 24/11/2005, 16h32
  5. A propos d'une requête SQL sur plusieurs tables...
    Par ylebihan dans le forum Langage SQL
    Réponses: 2
    Dernier message: 14/09/2003, 16h26

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