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. #21
    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 : 60
    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
    Citation Envoyé par maftour Voir le message
    Je ne vois pas trop comment créer cette table ? Peux-tu me donner un exemple ? Merci
    Et bien, à ce que j'ai compris (cf le lien publié lors de ta réponse à Marot), 1 DMOS correspond à une certification.
    Tu souhaite associer dans une équipe 1 soudeur ayant une certification bien précise.
    Il te faut donc :
    1 table référentiel des certifications DMOS ex :
    Code DMOS Description
    111-01/B xxxxxxx
    112-01/B xxxxxxx
    113-01/B xxxxxxx

    table référentiel associant 1 soudeur à 1 certif DMOS
    Code soudeur Code DMOS
    01 111-01/B
    01 112-01/B
    01 113-01/B
    02 111-01/B
    03 135-12/A

    Dans l'exemple ci-dessus, tu souhaite affecter à ton équipe des soudeurs ayant la qualification DMOS 112-01/B et 135-12/B, Tu devras affecter le soudeur 01 et le soudeur 03 car ce sont les seuls qui possèdent ces qualifications

    Par contre, si tu souhaite affecter à ton équipe des soudeurs ayant la qualification DMOS 111-01/B, tu pourras choisir le soudeur 01 ou 02 car ils ont tous les 2 cette compétence.

    Tu n'auras donc plus qu'à gérer une table de relation équipe-soudeurs sans avoir à renseigner la DMOS, car ceux-ci auront été affectés selon leur qualification.
    S'il n'y a pas de solution, c'est qu'il n'y a pas de problème !!!
    si tout est OK, n'oubliez pas de cliquer sur

  2. #22
    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 dumas.blr,

    Merci pour ta réponse. Cependant mon problème n'est pas lié à l'affectation mais à la comptabilité.

    Je fais en sorte d'affecter mes équipes en fonctions des DMOS pour lesquels ils sont qualifiés (comme tu l'as indiqué mais grâce à un tableau croisé dynamique sur excel puis je les rentre manuellement dans ma table équipe soudure). Un soudeur peut-être qualifié pour plusieurs DMOS, il peut y avoir plusieurs soudeurs qualifiés pour un DMOS dans une équipe. Une équipe peut réaliser plusieurs soudures en fonctions de plusieurs DMOS.

    Le soucis c'est que j'ai 4000 soudures à réaliser. Pour ma table soudure, d'une manière simplifié je rentre ma soudure, sa date l'équipe qui l'a réalisé et le DMOS utilisé. Mon objectif est de savoir combien de DMOS par type sont réalisé par mes soudeurs :

    Soudure Date Équipe DMOS

    S01 01/01/15 CRC01 111-01/B
    S02 01/01/15 MP08 111-01/B
    S03 15/01/18 M01 113-01/B
    ...

    Sauf que mon soudeur peut appartenir à plusieurs équipes. Dans ce cas si je prends l'exemple de soudeur 01, je saurais qu'il a réalisé :

    2 DMOS 111-01/B
    1 DMOS 113-01/B

    j’aurais préalablement entré dans la base le fait que le soudeur 01 appartient à l'équipe CRC01; MP08 et M01. Finalement le fait de savoir que tel soudeur est qualifié pour tel DMOS m'importe peu car je sais que l'équipe qui réalisé la soudure selon un certain DMOS est constitué d'individus qualifiés pour ce DMOS.

    D'où une certaine confusion. Les deux tables qui m'intéresse c'est la composition des équipe de soudures (Equipe; ID soudeur) et celle qui contient les détails de la soudures (date, équipe, DMOS utilisé...)

  3. #23
    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 : 60
    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,

    Il y a quelque chose que je ne comprends pas bien

    Prenons une équipe qui comprend 5 soudeurs
    soudeur 1 -> il a les qualifications DMOS A B C et D
    soudeur 2 -> il a les qualifications DMOS A et B
    soudeur 3 -> il a les qualifications DMOS A et D
    soudeur 4 -> il a les qualifications DMOS B C et D
    soudeur 5 -> il a les qualifications DMOS C et D

    Maintenant on prend le CR d'intervention de ton équipe
    Elle a effectué 50 soudures dans la journée
    - 20 soudures de type DMOS A
    - 15 soudures de type DMOS B
    - 10 soudures de type DMOS C
    - 5 soudures de type DMOS D

    les seul moyen de comptabiliser les soudures par DMOS, seront bien de rattacher le soudeur d'une équipe à une soudure; dans l'exemple ci-dessus
    - les 20 soudures de type DMOS A ont pu être effectuées par les soudeurs 1, 2 ou 3
    - les 15 soudures de type DMOS B ont pu être effectuées par les soudeurs 1 ou 2
    - les 10 soudures de type DMOS C ont pu être effectuées par les soudeurs 1, 4 ou 5
    - les 5 soudures de type DMOS D ont pu être effectuées par les soudeurs 1, 3, 4 ou 5

    Il faudra donc bien rattacher une soudure à 1 ou plusieurs soudeurs de l'équipe. Il te manque donc un niveau de granularité entre équipe, soudeurs et équipe.
    Dans ta table, la relation entre équipe et soudure est secondaire.

    Pour reprendre ton exemple, il faudrait plutôt mettre :
    Soudure Date soudeur DMOS

    S01 01/01/15 1 111-01/B
    S02 01/01/15 1 111-01/B
    S03 15/01/18 2 113-01/B
    ...

    et si une soudure a été effectuée par plusieurs soudeurs en même temps (ex la soudure S02), t
    u auras alors

    Soudure Date soudeur DMOS

    S02 01/01/15 1 111-01/B
    S02 01/01/15 2 111-01/B
    ...


    Tu pourras créer une table équipe-soudeur qui comprendra :
    Code équipe Soudeur
    CRC01 1
    CRC01 3
    CRC01 4
    MP08 1
    MP08 2

    Ce qui te permettra de constituer une équipe en fonction de ses interventions planifiées. Ce qui signifie qu'il te faut aussi une table référentielle des soudures. Dans ton exemple
    Soudure DMOS
    S01 111-01/B
    S02 111-01/B
    S03 113-01/B

    Quand tu constituera ton équipe, tu pourra le faire en fonction de la planification de tes soudures et des compétences de tes soudeurs.

    Pour résumer, je vois l'organisation de tes tables de la manière suivante
    Table soudure : référence de la soudure avec la DMOS afférente, avec une date d'intervention planifiée, et contient au moins les colennes suivantes :
    - ID soudure
    - DMOS
    - Date intervention planifiée

    Table planification équipe : elle est créé en fonction de ton planning d'intervention, et elle est constituée des personnes avec l'ensemble des qualifications DMOS demandées, ainsi que des soudures qui ont été demandée.
    Elle contient au moins les colonnes suivantes :
    - Code équipe
    - ID soudure


    Table équipe-soudeur : Elle
    est constituée des personnes avec l'ensemble des qualifications DMOS demandées. Elle contient au moins les colonnes suivantes :
    - Code Equipe
    - ID soudeur

    Table intervention : Elle recense les interventions effectives des soudeurs d'une équipe sur une soudure
    Elle contient au moins les colonnes suivantes :
    - Code soudure
    - ID soudeur
    - Date intervention effective


    Ai-je bien compris ?
    S'il n'y a pas de solution, c'est qu'il n'y a pas de problème !!!
    si tout est OK, n'oubliez pas de cliquer sur

  4. #24
    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
    Merci dumas ! C'est exactement ca ! J'ai créer les tables, mais maintenant il faut que je relie tout ces éléments...

    L'objectif étant de sélectionner un soudeur afin d'afficher les DMOS qu'il a efectués.

    Donc si j'ai tout compris dans la table intervention il faudra que je rentre ma soudure et que je répété ceci pour tous mes soudeurs. Sachant que j'ai 50 soudures jours et en moyenne 6 soudeurs par équipe il faut donc entrer en fin de journée +300 données manuellement ?

  5. #25
    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 : 60
    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
    Oui, c'est à peu près cela

    Mais pour t'éviter à tout rentrerà chaque fois, il me semble que des formulaires avec des cases à cocher devraient grandement te simplifier la tache.

    Ta table des soudeurs ne doit pas beaucoup évoluer ( à moins que tu fasses appel a des prestataires exterieurs pour des missions très courtes) . J'imagine que tu peux importer ce référentiel à partir de fichiers exterieurs (type feuille excel ou base de données externes)

    Pour les soudures, là j'imagine que la table est mise à jour chaque fois que des nouvelles interventions sont planifiées. As-tu des données externes à importer ?

    Après, je ne sais pas comment tu fonctionnes. est-ce que tu constitues une équipe en fonction des soudures et que tu affectes ensuite les soudeurs ? Ça me parait le plus logique.
    Dans ce cas tu rattache d'abords tes soudures à ton équipe, ce qui te donnera toutes les qualifications DMOS dont tu auras besoin. Ensuite, tu pourras rattacher tes soudeurs à ton équipe.

    Ah dans ce cas, j'ai oublié : tu dois quand même créer une table de référence soudeur-qualification DMOS qui contiendra au moins :
    - ID soudeur
    - qualification DMOS
    puisque qu'un soudeur peut avoir plusieurs qualifications DMOS.
    Cette table sera susceptible d'évoluer uniquement si un soudeur acquiert une nouvelle qualification DMOS (ou la perd ... S'ils doivent passer une requalification régulière ... ça je ne sais pas comment ça fonctionne dans cette activité ...)


    Ce qui fera que lors tu constitueras ton équipe, tu pourras afficher uniquement les soudeurs qui possèdent la qualification DMOS recherchée pour les soudures à effectuer, et les affecter à ton équipe par un système de listes dynamiques

    Idem pour le comptage des interventions :
    Pour une soudure donnée, tu n'affichera que les soudeurs de l'équipe qui ont la qualif DMOS afférente, et tu sélectionneras le ou les soudeurs qui ont travaillés sur cette soudure en cochant une case. C'est plus simple et plus sur que de saisir les données manuellement (saisie en texte libre = risque d'erreur de saisie)

    Ça demandera un travail de création des formulaires un peu plus compliqué au début, mais économisera beaucoup de temps de saisie en fin de compte
    S'il n'y a pas de solution, c'est qu'il n'y a pas de problème !!!
    si tout est OK, n'oubliez pas de cliquer sur

  6. #26
    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
    Bon finalement c'est bien plus compliqué que ce je ne pensais. J'abandonne access. Je ne vois en quoi sélectionner un numéro de soudeur associé à une équipe dans une table afin de filtrer une autre table est qui contient le numéro de soudure est si complexe. (C'est vrai que dans mon esprit ca semble simple)

    Ce n'est pas de mon niveau !

    Merci pour votre aide dans tous les cas.

  7. #27
    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 : 60
    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
    Citation Envoyé par maftour Voir le message
    Bon finalement c'est bien plus compliqué que ce je ne pensais. J'abandonne access. Je ne vois en quoi sélectionner un numéro de soudeur associé à une équipe dans une table afin de filtrer une autre table est qui contient le numéro de soudure est si complexe. (C'est vrai que dans mon esprit ca semble simple).
    Peut-être que je me suis mal exprimé

    Je t'ai joint une base de données exemple pour que tu comprennes.
    C'est ICI soudeurs.zip

    J'ai créé 6 tables
    - la table des soudeurs (T_soudeurs)
    - la table du référentiel DMOS (T_DMOS)
    - la table des qualifications DMOS par soudeur (T_soudeurs_DMOS)
    - la table des soudeurs composant une équipe (T_Equipe_soudeurs)
    - la tables des affectations des équipes pour les soudures (T_soudure)
    - enfin , la table des interventions réelles des soudeurs sur les soudures (T_intervention)

    Je me suis basé sur ton exemple pour alimenter les 3 premières tables, et j'ai choisi au hasard des qualification DMOS pour tes soudeurs
    La table des affectation est vide pour le moment, et tu vas vite comprendre pourquoi.

    J'ai enfin créé une requête "Affectation potentielle des soudures" qui va te montrer pourquoi du dois lier 1 soudure à 1 ou plusieurs soudeurs.

    le SQL généré est celui-ci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT T_soudure.[N° soudure], T_soudure.[code DMOS], T_soudure.[Date planifiée], T_soudure.Equipe, T_soudeurs_DMOS.ID_soudeur, T_soudeurs.[Nom soudeur], T_DMOS.DMOS
    FROM (T_soudure INNER JOIN (T_Equipe_soudeurs INNER JOIN (T_soudeurs_DMOS INNER JOIN T_DMOS ON T_soudeurs_DMOS.[Code DMOS] = T_DMOS.[code DMOS]) ON T_Equipe_soudeurs.ID_soudeur = T_soudeurs_DMOS.ID_soudeur) ON (T_soudure.Equipe = T_Equipe_soudeurs.Equipe) AND (T_soudure.[code DMOS] = T_soudeurs_DMOS.[Code DMOS])) INNER JOIN T_soudeurs ON T_soudeurs_DMOS.ID_soudeur = T_soudeurs.ID_soudeur;
    et voici le résultat

    Nom : Requete.JPG
Affichages : 291
Taille : 52,1 Ko



    En effet, dans mon exemple, à quel soudeurs vas-tu rattacher ta soudure J10 (DMOS 111-01/B) ? dans l'équipe CRC01, il y a 4 soudeurs qui peuvent potentiellement effectuer la soudure car ils ont cette qualification DMOS (La requête te sélectionne uniquement 4 soudeurs sur une équipe de 5 car le soudeur 4 n'a pas la qualification DMOS 111-01/B). Mais dans les faits, lequel (ou lesquels) parmi les 4 aura fait effectivement la soudure ? Il te faudra bien le renseigner une fois que les interventions ont été effectuées. C'est à ça que doit te servir la table T_intervention

    Tu vois, ce n'est pas si compliqué que ça, mais il faudra quand même que tu saisisse les interventions effectives de tes soudeurs sur tes soudures. C'est pour cela qu'il est important de créer des formulaires de saisi que soient simple et performants à utiliser. et ça, c'est tout à fait à ta portée

    Bon courage ! et n'hésite pas à revenir pour plus de questions.
    S'il n'y a pas de solution, c'est qu'il n'y a pas de problème !!!
    si tout est OK, n'oubliez pas de cliquer sur

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