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 :

Relier deux tables


Sujet :

Requêtes et SQL.

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 20
    Points : 4
    Points
    4
    Par défaut Relier deux tables
    Bonjour,

    Je cherche à relier 3 table à partir de 2 champs. Ces champs possèdent les même propriétés.

    Chaque soudeur effectue un certain nombre de DMOS. Or, un soudeur peut travailler dans plusieurs équipe différentes. Comment relier ces informations ?
    Nom : Sans titre.png
Affichages : 333
Taille : 13,9 Ko

    Je souhaiterais à partir de l'ID qu'access me comptabilise l'ensemble des DMOS que le soudeur a effectué dans les différentes équipes.

    Ex :
    ID : 001
    Equipe : 200 et 203
    Nombre de soudure équipe 200 : 5
    Nombre de soudure équipe 203 : 3

    Soit en réalité le soudeur 001 a effectué 8 soudures. Pour les calculs ce n'est pas un soucis. Le but c'est comment créer la requête paramétré ?

    Merci !

  2. #2
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 365
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 365
    Points : 23 835
    Points
    23 835
    Par défaut
    Bonjour.

    je ferai quelque chose comme :

    1. Soudeur <-> Équipe Soudeur sur ClefSoudeur
    2. EquipeSoudeur <-> Soudure sur ClefSoudeur et ClefEquipe


    Cela garanti que tu ne peux assigner à une soudure qu'un soudeur de l'équipe choisie.
    Et il faut que l'équipe soit constituée avant que la soudure soit faite.

    Une solution plus "souple" est

    1. Soudeur <-> Soudure sur ClefSoudeur
    2. Equipe <-> Soudure sur ClefEquipe



    Il n'y a plus de table EquipeSoudeur.

    Là n'importe quel soudeur peut être assigné à une soudure, même chose pour les équipes.

    Tu peux ensuite déduire le couple (Soudeur, Équipe) à partir de Soudure. Cela peut-être pratique si tes équipes changent souvent.

    A+

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 20
    Points : 4
    Points
    4
    Par défaut
    Bonjour marot,

    Je pense que la deuxième solution est la plus adaptée car mes équipes changent souvent. Mais je n'ai pas trop compris comment les relier. Dois-je ajouter des champs supplémentaire dans synthese_ad1 ?

    Ce qui me pose le plus problème c'est surtout comment créer cette reqûete.

    Merci pour ton aide

  4. #4
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 365
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 365
    Points : 23 835
    Points
    23 835
    Par défaut
    Oui, si j'ai bien compris ton besoin : associer un soudeur à une soudure, tu devrais ajouter le champ Id Soudeur à la table pour pouvoir créer la relation.

    A+

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 20
    Points : 4
    Points
    4
    Par défaut
    Bonjour marot,

    Dans ce cas je dois ajouter aussi un champ Id Equipe dans ma table "Soudeur". Cependant ces champs seront vides.

    Je vais ajouter plus de précision :


    J'ai un soudeur identifié par un numéro (ici le champs "ID"). Celui-ci peux travailler dans plusieurs équipe. Chaque équipe (constitué de plusieurs soudeurs) effectue une soudure selon certaines caractéristique appelé DMOS (A, B ou C).

    Je voudrais en sélectionnant l'ID de mon soudeur pouvoir voir :

    Le nombre de soudures total en fonction de chaque caractéristique pour toutes les équipes confondues.
    Ex:

    ID :001
    Soudure A : 30
    Soudure B: 40
    Soudure C: 50

    OU sinon :

    Le nombre de soudures total en fonction de chaque caractéristique par équipes.
    Ex :
    ID :001

    Equipe 200 : Soudure A : 3 / Soudure B: 5 / Soudure C : 6
    Equipe 203 : Soudure A : 1 / Soudure B: 9 / Soudure C : 10
    Etc.

    J'espère avoir était un peu plus clair. Merci pour ton aide en tous cas !

  6. #6
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 20
    Points : 4
    Points
    4
    Par défaut
    Suite à une petite réflexion, la table soudeur est inutile car on retrouve l'ID des soudeurs dans la table Equipe soudeur.

    J'ai donc crée une requête de regroupement "Beta" qui en fonction de l'ID soudeur révéle l'équipe pour lequel ce dit soudeur est affecté :

    Nom : r1.PNG
Affichages : 302
Taille : 7,2 Ko

    J'ai ensuite relié la requête "BETA" à la requête DMOS test qui se présente comme tel. J'ai affecté a la requete dmos test ma requête BETA.

    Nom : l1.PNG
Affichages : 254
Taille : 3,8 Ko

    Nom : r2.PNG
Affichages : 246
Taille : 9,5 Ko

    Bien évidement ca ne marche pas. J'obtiens le message suivant :

    Nom : sy.PNG
Affichages : 243
Taille : 7,7 Ko

  7. #7
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 365
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 365
    Points : 23 835
    Points
    23 835
    Par défaut
    Dans ce cas je dois ajouter aussi un champ Id Equipe dans ma table "Soudeur". Cependant ces champs seront vides.
    Si un champ reste vide pour tous tes enregistrements, c'est un bon signe qu'il n'est pas utile :-).

    Comme je le mentionnais précédemment, tu peux déduire la relation entre tes soudeurs et leurs équipes via la table des soudures.

    Pour trouver toutes les soudures de 001 par DMOS tu fais simplement quelque chose comme

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    select [SYNTHSES_AD1_IMP].[DMOS], Count([SYNTHSES_AD1_IMP].[DMOS]) from [SYNTHSES_AD1_IMP]
    group by [SYNTHSES_AD1_IMP].[DMOS] having [SYNTHSES_AD1_IMP].[ID Soudeur]="001"

    Pour l'avoir par équipe et DMOS, utilise l'assistant de génération de requête croisée dynamique en te basant encore sur [SYNTHSES_AD1_IMP]. Elles sont faites pour cela.

    A+

  8. #8
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 365
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 365
    Points : 23 835
    Points
    23 835
    Par défaut
    Suite à une petite réflexion, la table soudeur est inutile car on retrouve l'ID des soudeurs dans la table Equipe soudeur.
    C'est table EquipeSoudeur qui associe un soudeur à son équipe qui n'est pas obligatoire. L'info est dans Soudure.

    La table [Equipe] et la Table [Soudeur] sont obligatoires pour garantir que les codes utilisés sont valides.
    La table [Soudeur] probablement aussi pour garder des informations comme son nom et son prénom.
    La table [Equipe] probablement aussi pour garder des informations comme son nom

    A+

  9. #9
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 20
    Points : 4
    Points
    4
    Par défaut
    Bonjour marot,

    Premièrement merci pour ton aide.

    Cependant, dans ma table soudeur je n'indique pas mon équipe soudeur pour laquelle il travail. Elle est un peu plus complexe et ne donne pas la possibilité d'associer à un soudeur son équipe. D'où la création de la table équipe soudeur.

    Je viens de tester ton code et j'obtiens le message d'erreur suivant :
    Nom : sy1.PNG
Affichages : 257
Taille : 7,5 Ko

    Je pense que le code est bon, mais ma jointure doit-être fausse. Est-ce la bonne ?

    Nom : j.PNG
Affichages : 249
Taille : 49,1 Ko

  10. #10
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 365
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 365
    Points : 23 835
    Points
    23 835
    Par défaut
    Bonjour.

    Je t'avoue qu'au niveau des relations je ne change jamais le type de jointure et j'applique toujours l'intégrité référentielle et la mise à jour en cascade.

    Je joue avec les type de jointure seulement dans les requêtes.

    Pour ce qui est du SQL, désolé je n'y suis pas bon. J'utilise principalement l'éditeur. Donc voici comment faire en laissant Access s'occupé de la plomberie.

    1. Tu créer une nouvelle requête et tu choisis ta table [Soudure].
    2. Tu prends les champs qui t'intéressent (ici [Id Soudeur], [DMOS] , [DMOS])
    3. Tu appuis sur l'icône "Regroupement" celle avec un sigma dessus (qui ressemble à un 3 à l'envers), cela va faire apparaître la ligne des regroupements.
    4. Pour [ID Soudeur] tu choisi "Où" et tu mets 001 dans la ligne des critère et il faut décocher le champ. Si tu veux voir le champ laisser "Regroupement".
    5. Pour le 1er [DMOS], tu laisses "Regroupement".
    6. Pour le 2nd [DMOS], tu mets "Compte".


    Et voilà un SQL complexe créé pour toi en quelques clics.

    A+

    A+

  11. #11
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 20
    Points : 4
    Points
    4
    Par défaut
    Bonjour Marot,

    ta requête fonctionne parfaitement mais ce n'est pas ce que je souhaite

    Voici une capture de ma table soudeur_imp. La ligne DMOS correspond au DMOS pour lequel il est qualifié et non pas ceux qu'il a réalisé (qui eux sont indiqué dans la table synthses_imp et qui sont associé au numéro d'équipe) :
    Comme tu peux le remarquer, je n'y indique pas l'équipe pour laquelle le soudeur travaille.


    Nom : id1.PNG
Affichages : 191
Taille : 8,5 Ko


    Sur la table synthses_ad1, on ne retrouve pas les ID soudeurs. Voici à quoi elle ressemble.

    Nom : id4.PNG
Affichages : 268
Taille : 15,1 Ko

    Voici une capture de la table équipe soudure. Dans cette table j'associe une équipe à un ID soudeur.

    Nom : id2.PNG
Affichages : 196
Taille : 7,3 Ko

    je suis certain que la solution est toute proche ! Et désolé pour mon manque de précision

  12. #12
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 365
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 365
    Points : 23 835
    Points
    23 835
    Par défaut
    Peux-tu poster un copie d'écran des relations ? Celle qui est actuellement dans la discussion n'est pas très claire.

    Et le SQL de la requête qui ne te donne pas ce que tu veux ?

    Il se peut que je n'ai pas été clair sur la table à utiliser.

    A+

  13. #13
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 20
    Points : 4
    Points
    4
    Par défaut
    Bonjour marot,

    Voici la capture d'écran :


  14. #14
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 20
    Points : 4
    Points
    4
    Par défaut
    Comme je l'ai dit précédement, la table soudeur_imp ne m'est pas utile. Elle l'est seulement à mes fins personnels. Par contre pour déterminer le nombre de DMOS effectué, celle qui est equipe_soudeur est plus intéressante car on n'y retrouve l'ID soudeur et l'Equipe de soudure.

  15. #15
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 365
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 365
    Points : 23 835
    Points
    23 835
    Par défaut
    La copie d'écran ne s'est pas chargée correctement elle n'apparaît pas dans le fil de discussion.

    Il y a un point que je dois manquer.

    Est-ce bien le nombre de DMOS pour un soudeur données que tu veux ?

    Si oui, il faut que quelque part dans tes données tu ais l'information DMOS (A, B ou C) et Soudeur.

    A+

  16. #16
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 20
    Points : 4
    Points
    4
    Par défaut
    Bonjour marot,

    Oui exactement c'est ce que je souhaite. Malheureusement je ne peux pas combiner DMOS et Soudeur Car dans ma table soudeur je n'entre que les DMOS pour lequel celui-ci est qualifié (A, A ou B, A ou C...) et cela m'obligerait à entrer dans ma table soudure l'ensemble des membres de l'équipe. D'où la proposition de la table équipe soudeur qui ferait office d'interface.

    Voici une meilleure image :

    http://image.noelshack.com/fichiers/...455876-rel.png

  17. #17
    Membre éclairé Avatar de dumas.blr
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juin 2010
    Messages
    598
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2010
    Messages : 598
    Points : 879
    Points
    879
    Par défaut
    Bonjour maftour,

    Je m'invite dans la discussion.

    Pourquoi ne pas créer une table qui associerait un soudeur avec une qualification DMOS (s'il s'agit bien de cela à ce que j'ai compris) ?

    Tu pourrais alors associer un soudeur à une équipe pour un type de soudure bien précis.

    Il te faudrait dans ce cas créer 2 tables supplémentaires :
    - 1 table des références DMOS
    - 1 table associant les soudeurs et les références, qui donnerait les habilitations pour chaque soudeur à une DMOS

  18. #18
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 365
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 365
    Points : 23 835
    Points
    23 835
    Par défaut
    Malheureusement je ne peux pas combiner DMOS et Soudeur Car dans ma table soudeur je n'entre que les DMOS pour lequel celui-ci est qualifié
    Est-ce qu'un soudeur peut faire des DMOS pour lequel il n'est pas qualifié ?

    Est-ce qu'une équipe peut comporter plus de 1 soudeur qualifié pour le même DMOS ?

    Si oui, alors il faut vraiment que la soudure soit associée au soudeur et pas seulement à son équipe.

    A+

  19. #19
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 20
    Points : 4
    Points
    4
    Par défaut
    Citation Envoyé par dumas.blr Voir le message
    Bonjour maftour,

    Je m'invite dans la discussion.

    Pourquoi ne pas créer une table qui associerait un soudeur avec une qualification DMOS (s'il s'agit bien de cela à ce que j'ai compris) ?

    Tu pourrais alors associer un soudeur à une équipe pour un type de soudure bien précis.

    Il te faudrait dans ce cas créer 2 tables supplémentaires :
    - 1 table des références DMOS
    - 1 table associant les soudeurs et les références, qui donnerait les habilitations pour chaque soudeur à une DMOS
    Je ne vois pas trop comment créer cette table ? Peux-tu me donner un exemple ? Merci

  20. #20
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 20
    Points : 4
    Points
    4
    Par défaut
    Citation Envoyé par marot_r Voir le message
    Est-ce qu'un soudeur peut faire des DMOS pour lequel il n'est pas qualifié ?

    Est-ce qu'une équipe peut comporter plus de 1 soudeur qualifié pour le même DMOS ?

    Si oui, alors il faut vraiment que la soudure soit associée au soudeur et pas seulement à son équipe.

    A+
    Bonjour marot,

    Une équipe peux comporter plus d'un soudeur qualifié pour le même DMOS.

    Comment relier la soudure au soudeur ? Comment créer cette relation ? Merci

    Pour info, qu'est-ce qu'un DMOS : http://www.airliquidewelding.com/fr/...n-en-1090.html

Discussions similaires

  1. relier deux tables
    Par mina_mi dans le forum Bases de données
    Réponses: 8
    Dernier message: 08/06/2007, 16h25
  2. [PHP/MySQL] Comment relier deux tables ?
    Par SkiSo dans le forum Requêtes
    Réponses: 4
    Dernier message: 08/03/2007, 22h10
  3. [Débutant] Formulaire/Requetes relier deux tables
    Par antoine0207 dans le forum Access
    Réponses: 9
    Dernier message: 29/06/2006, 16h07
  4. Relier deux tables, et créer un formulaire
    Par Pierrobinho dans le forum IHM
    Réponses: 2
    Dernier message: 16/06/2006, 14h48
  5. [débutant] relier deux tables
    Par benoitB dans le forum Débuter
    Réponses: 4
    Dernier message: 27/06/2005, 14h04

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