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

Requêtes et SQL. Discussion :

Problème sur mes jointures


Sujet :

Requêtes et SQL.

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Août 2010
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Problème sur mes jointures
    Bonjour à tous,

    Dans le cadre de mon stage, je dois effectuer des requetes sur Access, mais j'ai un problème concernant mes relations entre mes tables.

    Pour expliquer brièvement, j'ai deux tables, qui concernent des formations professionnelles :

    La première est une table d'inscription, avec 2 colonnes, la première avec les noms de formations, et la 2e avec les matricules des salariés devant effectuer la formation

    La 2e table est une table de complétude des formations avec 3 colonnes, 1ere colonne les noms de formation, 2e colonne les matricules des salariés ayant complété la formation, 3e colonne, le mot "complété" est inscrit


    Je veux donc confronter ma table de personnes ayant complété les formations, aux tables d'inscriptions, pour avoir en résultat une table avec tous les salariés, avec inscrit dans la 3e colonne complété s'ils l'ont complétés, ou un blanc s'ils ne l'ont pas complété

    Cela aurait été simple s'il n'y avait qu'une formation, une jointure sur les salariés, le problème est qu'il y a plusieurs formations différentes, il y a donc 2 facteurs à prendre en compte, le nom de formation, et le salarié

    J'ai Access 2003, et ne maitrise absolument pas le SQL ou VBA



    Pour illustrer un per voici des exemples :

    Inscription
    Formation Matricule salarié
    Excel 32
    Excel 33
    Excel 34
    Access 32
    Access 33
    Access 34

    Complétude
    Formation Matricule Stqtut
    Excel 33 Complété
    Access 32 Complété


    Résultat voulu


    Formation Matricule salarié
    Excel 32
    Excel 33 Complété
    Excel 34
    Access 32 Complété
    Access 33
    Access 34




    Merci à tous ceux qui prennent le temps de me lire, et de me répondre

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    122
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2010
    Messages : 122
    Points : 172
    Points
    172
    Par défaut
    Salutations,

    Pour commencer, bienvenue sur le forum.

    Concernant ton problème, tu peux créer une requête entre tes deux tables en mode création. Tu ajoutes tes deux tables et tu mets tes jointures sur les deux champs.
    Tu cliques ensuite droit sur chacune de tes jointures et tu vas dans propriété. Là, tu peux définir le sens de ta liaison. Pour les deux liens, tu lui dis que tu souhaites afficher "toutes les occurences de la table inscription et seulement les occurrences de la table complétude pour lesquels les champs sont égaux".

    Concernant les champs à afficher, tu descends les champs nom de formation et matricule du salarié de ta table inscription, puis le champ complété de ta table complétude.

    Normalement tu devrais arriver au résultat souhaité sans rien connaître au SQL ou au VBA

    Cordialement,

  3. #3
    Modérateur
    Avatar de sevyc64
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2007
    Messages
    10 222
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 222
    Points : 28 210
    Points
    28 210
    Par défaut
    Je pense qu'une simple requete de ce style devrait suffir :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT t1.Formation, t1.[Matricule salarié], t2.Statut 
    FROM Inscription t1
    LEFT OUTER JOIN Complétude t2 ON t1.Formation=t2.Formation AND t1.[Matricule salarié]=t2.Matricule

  4. #4
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Août 2010
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    Merci beaucoup à vous deux pour vos réponses.
    J'ai essayé de faire une double jointure, mais cela n'a pas l'air de fonctionner, l'execution de la requete bloque (aucun message d'erreur, mais la barre de chargement s'arrete quand elle est vers la fin), et au bout de 10 minutes m'affiche les résultats, c'est étrange car les tables ont environ 30000lignes, ça devrait aller très vite

    Il me semblait que le problème était les liaisons, mais je pense avoir fait comme il fallait, peut-être qu'il s'agit d'un autre problème que j'ai mal identifié...

    Dans mon exemple ci dessus, j'ai simplifié les données

    La table inscription est telle que je l'ai décrite, mais la table complétude de formation est différente,

    en effet, il y a des doublons,

    par exemple

    Excel 32 Complété
    Excel 32
    Excel 32 Complété
    Excel 33
    Excel 34
    Excel 34 Complété
    Acces 35

    Notre fichier arrive avec des données comme ci dessus, pour la meme formation et le même salarié, cela m'indique parfois qu'il l'a complété, et parfois qu'il ne l'a pas complété

    J'ai donc crée une 3e table de ce type

    Statut Priorité
    Complété 1Complété
    ******* 2Non Complété

    Je mets une jointure sur le statut de complétion et fait apparaitre dans mes colonnes de requete, la 2e colonne de ma 3e table, que je tri sur croissant, avec une opération Min

    Le but étant que cela me donne Le statut Complété en priorité si il y a plusieurs statut pour la même formation et le meme collaborateur.


    J'ai donc :

    Un fichier d'inscription relié avec ma table de complétude par matricule et nom de formation
    une table de statut lié avec ma table de complétude sur le statut

    Je ne sais pas si j'ai été clair du tout, je m'en excuse, je suis très novice avec Access, et parler des problèmes que je rencontre est plus difficile que prévu...




    EDIT :

    J'ai mis une image d'access en mode création en pièce jointe, je la retirerais, mais je pense que c'est mieu, car j'arrive pas à m'exprimer correctement pour expliquer.

    La table base de donnée correspond à la table complétude dont je vou parle
    Activity name = formation
    LoginID = matricule
    Completion statut = Statut
    Images attachées Images attachées  

  5. #5
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 390
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 390
    Points : 19 815
    Points
    19 815
    Billets dans le blog
    66
    Par défaut
    Salut,

    As-tu créé des index pour les identifiants dans chacune de tes tables ?

    Identifiant=champ(s) qui identifie de manière unique chacune des lignes de ta table.

    A+

Discussions similaires

  1. Problème sur un jointure externe
    Par Isiker dans le forum Développement
    Réponses: 8
    Dernier message: 16/04/2009, 20h32
  2. Problème sur une jointure, enfin je crois
    Par zooffy dans le forum Développement
    Réponses: 6
    Dernier message: 07/02/2009, 11h44
  3. Sécurite: Problème sur mes Index.php
    Par moonwar dans le forum Sécurité
    Réponses: 2
    Dernier message: 17/11/2008, 21h27
  4. Problème sur mes balises 'a'
    Par SebastienM dans le forum Mise en page CSS
    Réponses: 5
    Dernier message: 21/11/2007, 14h56
  5. Débutant SQL, problème sur une jointure censée exclure ??
    Par derfatypik dans le forum Langage SQL
    Réponses: 8
    Dernier message: 22/06/2005, 15h55

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