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

Développement SQL Server Discussion :

Requete SQL jointure externe sur plusieurs tables


Sujet :

Développement SQL Server

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    201
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 201
    Points : 114
    Points
    114
    Par défaut Requete SQL jointure externe sur plusieurs tables
    Bonjour

    Je developpe sur Access et j'attaque une base SQL SERVER j'ai une rquete a ecrire qui doit en fonction de l'annee precedente remplir l'annee en cours
    exemple pour l'annee 2010 je recupere les informations de l'année 2009 et je rempli les champs de ma table avec les donnes de l'année 2009 sauf pour le champ annee bien sur qui lui prend l'année en cours.Sauf qu ela c un peu plus complexe je doit aussi lié une table pour ne recuperer que certaine données pour ce faire j'ai ecrit la requete suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    select Table1.activiteid, Table1.accueilid, Table1.annee, ,Table2.groupe
     
    from  Table1,Table2  left join
     
    (select  Table1.capaciteid, , TActiviteNetCapacite.activiteid, TActiviteNetCapacite.annee,  from  Table1
    where  Table1.annee = 2011) R_table1 on  Table1.capaciteid =R_table1.capaciteid
     
    where    Table1.annee = 2010 and  Table1.activiteid= Table2.activiteid and Table2.groupe ='PERI'
    Quand j'execute cette requete j'obtiens l'erreur ODBC l'appel a echoué et je ne trouve pas de solution

    Merci de votre aide

  2. #2
    Modérateur

    Profil pro
    dba
    Inscrit en
    Janvier 2010
    Messages
    5 643
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : dba

    Informations forums :
    Inscription : Janvier 2010
    Messages : 5 643
    Points : 13 092
    Points
    13 092
    Par défaut
    Bonjour

    Vous avez deux virgules qui se suivent dans le SELECT de votre requete...

    SELECT Table1.activiteid, Table1.accueilid, Table1.annee, ,Table2.groupe

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    201
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 201
    Points : 114
    Points
    114
    Par défaut
    oui j'ai vu j'ai corriger mais j'ai toujours le meme probleme

  4. #4
    Membre émérite

    Homme Profil pro
    Chargé de Développement et d'Analyse de données
    Inscrit en
    Mars 2010
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chargé de Développement et d'Analyse de données
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2010
    Messages : 1 278
    Points : 2 856
    Points
    2 856
    Par défaut
    Citation Envoyé par mattmax Voir le message
    oui j'ai vu j'ai corriger mais j'ai toujours le meme probleme
    Et ceci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    SELECT Table1.activiteid, Table1.accueilid, Table1.annee,Table2.groupe
     
    FROM  Table1 INNER JOIN Table2  ON Table1.activiteid= Table2.activiteid 
    	     LEFT JOIN (SELECT  Table1.capaciteid,TActiviteNetCapacite.activiteid, TActiviteNetCapacite.annee
                            FROM  Table1 WHERE  Table1.annee = 2011) R_table1 ON  Table1.capaciteid = R_table1.capaciteid
    WHERE    Table1.annee = 2010 AND Table2.groupe ='PERI'
    Je ne sais pas ce que tu veux faire mais est ce que la requête suivante donne le même résultat ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT Table1.activiteid, Table1.accueilid, Table1.annee, ,Table2.groupe
    FROM  Table1 INNER JOIN Table2 ON Table1.activiteid= Table2.activiteid      
    WHERE Table1.annee IN (2010,2011) AND Table2.groupe ='PERI'

    A+
    Etienne ZINZINDOHOUE
    Billets-Articles

  5. #5
    Modérateur

    Profil pro
    dba
    Inscrit en
    Janvier 2010
    Messages
    5 643
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : dba

    Informations forums :
    Inscription : Janvier 2010
    Messages : 5 643
    Points : 13 092
    Points
    13 092
    Par défaut
    Citation Envoyé par mattmax Voir le message
    oui j'ai vu j'ai corriger mais j'ai toujours le meme probleme
    heu... tu as vu aussi que tu avais la même erreur dans la requete de ta pseudo table ?

    sinon, lance la requete directement dans l'interface afin d'avoir un message plus explicite que "l'appel a echoué"

    Car la ça ne va pas être facile

Discussions similaires

  1. Jointure externe sur plusieurs tables
    Par Xeuch dans le forum Requêtes
    Réponses: 1
    Dernier message: 19/08/2013, 20h12
  2. Jointure externe sur plusieurs tables
    Par huître dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 18/09/2011, 21h57
  3. [SQL Access] SELECT sur plusieurs Tables et Composer Champs
    Par Giuseppe dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 07/11/2005, 14h00
  4. [SQL] jointure externe avec 3 tables, comment faire ....
    Par grumbok dans le forum Langage SQL
    Réponses: 2
    Dernier message: 04/08/2005, 16h13
  5. Jointure externe sur 2 tables
    Par Danae dans le forum Langage SQL
    Réponses: 11
    Dernier message: 19/07/2005, 15h37

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