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 :

problème requete inner join


Sujet :

Langage SQL

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    490
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 490
    Points : 201
    Points
    201
    Par défaut problème requete inner join
    bonjour, j'ai un petit soucis avec une requete

    je souhaite avoir tous les renseignements concernant les frais à refacturer...
    donc une note peut avoir plusieurs frais....
    seulement ma requete ne me sort qu'une seule note par client alors qu'il peut y en avoir plusieurs.....
    voilà je veux tous les renseignements, client, tva, numero de note des frais à
    refacturer :
    je peux avoir plusieurs note....
    je fais donc ceci,

    seulement ça ne m'affiche que les frais d'une note même si j'en ai plusieurs...
    comment ça se 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
    15
    16
    17
    18
    19
    20
    21
    22
     
    SELECT noteFrais.numNote AS numNote,
               frais.numFrais AS numFrais,
               frais.dateFrais AS dateFrais,
               frais.libelle AS libelle ,
               frais.montantHT AS montantHT,
               frais.montantTVA AS montantTVA,
               frais.montantTTC AS montantTTC,
               projet.nomProjet AS nomProjet,
               TVA.tauxTVA AS tauxTVA,
               nomIntervenant AS Intervenant,
               client.nomClient AS nomClient,
               client.numClient AS numClient
     
      FROM frais
        INNER JOIN noteFrais ON (frais.numNote = noteFrais.numNote)
        INNER JOIN intervenant ON(noteFrais.numIntervenant=intervenant.numIntervenant)
        INNER JOIN TVA ON (frais.numTVA = TVA.numTauxTVA)
       INNER JOIN projet ON (noteFrais.numProjet = projet.numProjet)
       INNER JOIN client on (projet.numClient = client.numClient)
     
       WHERE aRefacturer=1 AND client.numClient=2
    Là je vois pas du tout d'où ça peut venir...
    merci !

  2. #2
    Rédacteur

    Avatar de zoom61
    Homme Profil pro
    ...
    Inscrit en
    Janvier 2005
    Messages
    9 429
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : ...
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2005
    Messages : 9 429
    Points : 58 612
    Points
    58 612
    Billets dans le blog
    11
    Par défaut
    Salut,

    As-tu essayé en rajoutant des parenthèses :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    SELECT noteFrais.numNote AS numNote,
               frais.numFrais AS numFrais,
               frais.dateFrais AS dateFrais,
               frais.libelle AS libelle ,
               frais.montantHT AS montantHT,
               frais.montantTVA AS montantTVA,
               frais.montantTTC AS montantTTC,
               projet.nomProjet AS nomProjet,
               TVA.tauxTVA AS tauxTVA,
               nomIntervenant AS Intervenant,
               client.nomClient AS nomClient,
               client.numClient AS numClient
     
      FROM frais
        (((((INNER JOIN noteFrais ON (frais.numNote = noteFrais.numNote))
        INNER JOIN intervenant ON(noteFrais.numIntervenant=intervenant.numIntervenant))
        INNER JOIN TVA ON (frais.numTVA = TVA.numTauxTVA))
       INNER JOIN projet ON (noteFrais.numProjet = projet.numProjet))
       INNER JOIN client ON (projet.numClient = client.numClient))
     
       WHERE aRefacturer=1 AND client.numClient=2
    N'oubliez pas le Tag afin de faciliter la recherche, et en votant cela permet de mieux la cibler.

    Je ne réponds pas aux messages privés s'ils sont liés à une question technique

  3. #3
    Expert éminent
    Homme Profil pro
    Big Data / Freelance EURL
    Inscrit en
    Mars 2003
    Messages
    2 124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Big Data / Freelance EURL

    Informations forums :
    Inscription : Mars 2003
    Messages : 2 124
    Points : 7 291
    Points
    7 291
    Par défaut
    Je doute que les parenthèses servent à quelque chose (à part sous Access) .

    Il faut sans doute remplacer certains INNER JOIN par des LEFT JOIN, tout au moins pour faire les tests.

  4. #4
    Membre actif
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    490
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 490
    Points : 201
    Points
    201
    Par défaut
    non les parenthèses ne cahngeront rien. J'ai mis des left outer join pour voir, j'ai le meme résultat...

  5. #5
    Membre éprouvé Avatar de Mathusalem
    Profil pro
    IT moa
    Inscrit en
    Décembre 2003
    Messages
    1 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : IT moa

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 008
    Points : 1 067
    Points
    1 067
    Par défaut
    enlève tes jointures une à une, jusqu'à ce que tu es le nombre de ligne attendu.
    Ensuite à toi de voir pourquoi la jointure en question ne te renvoie pas de que tu attends.

    Désolé de ne pouvoir t'aider plus, bon courage.

Discussions similaires

  1. Problème avec INNER JOIN
    Par jeanmarc1234 dans le forum Langage SQL
    Réponses: 9
    Dernier message: 14/01/2008, 15h57
  2. Requete INNER JOIN pb
    Par petchos dans le forum Langage SQL
    Réponses: 1
    Dernier message: 18/07/2007, 10h11
  3. [MySQL]simple requete INNER JOIN
    Par jpeg1st dans le forum Requêtes
    Réponses: 4
    Dernier message: 28/12/2006, 14h04
  4. [Oracle] problème avec INNER JOIN
    Par Philofish dans le forum Langage SQL
    Réponses: 5
    Dernier message: 15/09/2005, 10h20
  5. Erreur lors d'une requete INNER JOIN
    Par k-lendos dans le forum Langage SQL
    Réponses: 2
    Dernier message: 17/03/2004, 15h09

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