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 :

3 tables avec requête complexe


Sujet :

Langage SQL

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    186
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2003
    Messages : 186
    Points : 84
    Points
    84
    Par défaut 3 tables avec requête complexe
    Voilà mon problème :
    J’ai 3 tables ‘FOURNITURES’, ‘FOURNISSEURS’, ‘PRIX’ sous Access 2003.
    Ces tables sont reliées entre-elle par une relation 1-n.

    La table FOURNITURES :
    idFourniture
    Quantité
    Description


    La table FOURNISSEURS :
    idFournisseur
    Nom
    Adresse


    La table PRIX :
    idExtFourniture
    idExtFournisseur
    Prix

    Je désirais savoir à l’aide d’une requête SQL, pour chaque fourniture quelle est le fournisseur le moins chère, et ce, en une seul requête.

    Merci de vos réponses.

  2. #2
    Expert éminent sénior
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 073
    Points
    19 073
    Par défaut
    Ca doit donner un truc de ce style :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    select idFourniture , nom,Prix
    from FOURNITURES a,
            FOURNISSEURS b,
            (select idExtFourniture,idExtFournisseur , min(prix) prix 
               FROM PRIX c
              GROUP BY  idExtFourniture,idExtFournisseur ) c
    where c.idExtFourniture = b.idFournisseur 
       and c.dExtFourniture  = a.idFourniture
    PS : on est pas sensé faire les devoirs de nos amis forumeurs mais ma beauté est sans limite

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    186
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2003
    Messages : 186
    Points : 84
    Points
    84
    Par défaut
    J'ai essayé, mais il me met : "Erreur de syntaxe (opérateur absent) dans l'expression 'min(prix) prix'

    PS : Ce n'est pas un travaille scolaire mais pour mon boulot, mais je te remercie de ta réponse.

  4. #4
    Expert éminent sénior
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 073
    Points
    19 073
    Par défaut
    peut-être que si tu commençais par nous donner le SGBD que tu utilises ça ira nettement mieux


    je ne saurais trop te conseiller de lire les sujets du forum du SGBD en question et les docs disponible sur le site

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    186
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2003
    Messages : 186
    Points : 84
    Points
    84
    Par défaut
    Citation Envoyé par orafrance
    peut-être que si tu commençais par nous donner le SGBD que tu utilises ça ira nettement mieux
    je suis sous Access 2002, j'ai juste besoin de cette requête pour une application sous Delphi.

  6. #6
    Expert éminent sénior
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 073
    Points
    19 073
    Par défaut
    la requête est sous Oracle, à toi d'adapter pour Access, le principal c'est bien d'avoir le principe pas le travail tout fait

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    186
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2003
    Messages : 186
    Points : 84
    Points
    84
    Par défaut simple en fait
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    SELECT idFourniture
         , Description
         , prix
         , idFournisseur
         , Nom
         , Adresse
      FROM fournisseurs, fournitures, prix p1
     WHERE idFournisseur = idExtFournisseur
       AND idFourniture  = idExtFourniture
       AND prix = (
                    SELECT MIN(p2.prix)
                      FROM prix p2
                     WHERE p2.idExtFourniture = p1.idExtFourniture
                  )
    Merci pour les réponses

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

Discussions similaires

  1. Table avec requête intégrée et champs
    Par windsor dans le forum WinDev
    Réponses: 4
    Dernier message: 04/08/2010, 09h01
  2. [WD14] Filtre sur table avec requête
    Par Aenur56 dans le forum WinDev
    Réponses: 13
    Dernier message: 18/05/2010, 16h24
  3. Remplissage d'une table avec requête ODBC
    Par Marc_27 dans le forum VBA Access
    Réponses: 5
    Dernier message: 19/11/2009, 14h19
  4. [MySQL] Lecture d'une table avec requête ordonnée et groupée
    Par kabkab dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 24/06/2008, 14h38
  5. Réponses: 4
    Dernier message: 07/11/2007, 15h44

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