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 :

une requête avec deux jointures


Sujet :

Langage SQL

  1. #1
    Membre habitué Avatar de rinuom99
    Étudiant
    Inscrit en
    Août 2007
    Messages
    260
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2007
    Messages : 260
    Points : 171
    Points
    171
    Par défaut une requête avec deux jointures
    Bonjour,

    Je possède une base de données qui contient 3 tables de cette manière :

    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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
     
    operations                                                   
    -----------------------------------------       
    agence | typeoperation | montant | idcli   |     
    -----------------------------------------      
     001     |    1        |   100      | 84     |     
     002     |    1        |   155      | 85     |     
     002     |    1        |   144      | 86     |     
     004     |    2        |    090     | 87     |     
     005     |    3        |    211     | 88     |     
    -----------------------------------------       
     
    Agences
     ---------------------------
    |  codeagence    |   région  |
    |---------------------------
    |   001            |    A       |
    |   002            |    A       |
    |   003            |    B       |
    |   004            |    A       |
    |   005            |    B       |
    ---------------------------
     
    operation_1
    ----------------------
    numop     |   idcli       |
    ----------------------
       1      |   84       |
       2      |   85       |
       3      |   86       |
       4      |   87       |
       5      |   88       |
    ----------------------
    je m'excuse vraiment pour la male organisation des tables

    je veux faire une extraction de tous les opérations de type 1 des agences de la région A avec l'id cli et numop de chaque opération

    comme je suis encore débutant voici ma requête :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    select a.agence , a.typeoperation,  a.idcli, a.montant , c.numop
    from operations a , agences b , operation_1 c
    where a.typeoperation = '1'
    and b.region='A'
    and a.idcli = c.idcli
    and a.agence = b.codeagence 
    order by a.agence
    mais sous interbase sa ne marche pas, donc j'aimerai bien m'aide pour l'optimiste , merci d'avance

  2. #2
    Rédacteur/Modérateur
    Avatar de Metafire18
    Homme Profil pro
    Ingénieur de recherche Orange Labs
    Inscrit en
    Décembre 2007
    Messages
    777
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Territoire de Belfort (Franche Comté)

    Informations professionnelles :
    Activité : Ingénieur de recherche Orange Labs

    Informations forums :
    Inscription : Décembre 2007
    Messages : 777
    Points : 1 894
    Points
    1 894
    Billets dans le blog
    1
    Par défaut
    Je ne comprend pas à quoi sert la table opération_1. Pourrais tu m'expliquer?

  3. #3
    Membre habitué Avatar de rinuom99
    Étudiant
    Inscrit en
    Août 2007
    Messages
    260
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2007
    Messages : 260
    Points : 171
    Points
    171
    Par défaut
    dans cet exemple la table operation1 n'as pas de sens et aucun role, mais dans la base réel elle sert pour des controles

  4. #4
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 104
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Val de Marne (Île de France)

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

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 104
    Points : 28 400
    Points
    28 400
    Par défaut
    Tel que tu énonces ton problème, la requête que tu présentes semble répondre à la demande.
    Tu pourrais sans doute utiliser les jointures normalisées, ça ne gâche rien

    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
    SELECT    a.agence
        ,    a.typeoperation
        ,    a.idcli
        ,    a.montant
        ,    c.numop
    FROM     operations a
        INNER JOIN
            agences b
            ON    a.agence = b.codeagence
        INNER JOIN
            operation_1 c
            ON    a.idcli = c.idcli
    WHERE    a.typeoperation = '1'
        AND    b.region = 'A'
    ORDER BY a.agence
    ;

  5. #5
    Rédacteur/Modérateur
    Avatar de Metafire18
    Homme Profil pro
    Ingénieur de recherche Orange Labs
    Inscrit en
    Décembre 2007
    Messages
    777
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Territoire de Belfort (Franche Comté)

    Informations professionnelles :
    Activité : Ingénieur de recherche Orange Labs

    Informations forums :
    Inscription : Décembre 2007
    Messages : 777
    Points : 1 894
    Points
    1 894
    Billets dans le blog
    1
    Par défaut
    C'est vrai que ta requête paraît correcte
    Quelles sont les erreurs produites?

  6. #6
    Membre régulier
    Inscrit en
    Avril 2008
    Messages
    151
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 151
    Points : 123
    Points
    123
    Par défaut
    Peut être une question d'orthographe :
    attention aux majuscules --> Agence
    attention au acsens --> région

    Après j'ai pas test ...

  7. #7
    Membre habitué Avatar de rinuom99
    Étudiant
    Inscrit en
    Août 2007
    Messages
    260
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2007
    Messages : 260
    Points : 171
    Points
    171
    Par défaut
    merci beaucoup pour vos réponses,

    le probleme c que j'ai une base de 5 Go sous interbase , et ma requete beug a chaque fois, je vais essaye avec la requete de al1_24, avec des jointures normalisées

    merci encore une fois

Discussions similaires

  1. Une requête avec des jointures externes
    Par Sopra dans le forum Langage SQL
    Réponses: 4
    Dernier message: 30/07/2009, 17h28
  2. [SQL] ordonner une requête avec deux champs
    Par The Free Man dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 01/08/2008, 16h05
  3. Réponses: 2
    Dernier message: 31/05/2007, 15h58
  4. [ABAP] Comment créer une requête avec jointure
    Par roadster62 dans le forum SAP
    Réponses: 1
    Dernier message: 21/02/2006, 16h04
  5. optimisation d'une requête avec jointure
    Par champijulie dans le forum PostgreSQL
    Réponses: 8
    Dernier message: 07/07/2005, 09h45

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