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 :

Requête avec inner join pour état ? [AC-2016]


Sujet :

Requêtes et SQL.

  1. #1
    Membre habitué
    Homme Profil pro
    Technicien en numérisation
    Inscrit en
    Juillet 2002
    Messages
    338
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Canada

    Informations professionnelles :
    Activité : Technicien en numérisation

    Informations forums :
    Inscription : Juillet 2002
    Messages : 338
    Points : 155
    Points
    155
    Par défaut Requête avec inner join pour état ?
    Bonjour ou bonsoir (selon votre fuseau horaire).

    Je suis sur un projet de base de données qui a été créée et que je ne peux pas modifier. Les formulaires de gestion des informations sont fonctionnels. Avec cette base de données je dois faire quelques états. Jusque là tout semble normal.

    Structure de la Base de données avec les relations.

    Nom : Relations.PNG
Affichages : 426
Taille : 115,7 Ko

    Ci-bas c'est la structure de la table Boites. Elle contient les informations pour chaque boites, ainsi que les "ID_User" pour chaque action dans les champs (Responsable_Saisie_1, Responsable_Saisie_2, Responsable_Preparation_1, Responsable_Preparation_2, Responsable_Numerisation_1, Responsable_Numerisation_2, Responsable_Controle_1, Responsable_Controle_2, Responsable_Mise_en_Forme_1 et Responsable_Mise_en_Forme_2) et les heures et dates pour ces actions.

    Nom : structure table boites.PNG
Affichages : 307
Taille : 28,3 Ko

    Ci-bas est la table Utilisateurs. Un ID unique pour chaque utilisateur, nom complet etc...

    Nom : table Utilisateurs.PNG
Affichages : 320
Taille : 7,6 Ko

    L'état qui me cause des problèmes doit afficher pour chaque boite le nom du responsable et non le ID_User.

    Personnellement je crois qu'il faudrait une requête avec plusieurs inner Join (un inner join pour chaque Responsable dans la table Boites)

    Je suis rendu dans l'assistant de requête et je frappe un mur.

    Est-ce que je suis dans le champ avec mon idée de requête avec plusieurs inner join ou il existerait un type de requête que je pourrais créer sans les inner join ?

    Merci de votre aide

  2. #2
    Invité
    Invité(e)
    Par défaut
    bonjour,

    j'aurais plutot mis un left join pour chacun des responsables car certains peuvent etre NULL

  3. #3
    Membre habitué
    Homme Profil pro
    Technicien en numérisation
    Inscrit en
    Juillet 2002
    Messages
    338
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Canada

    Informations professionnelles :
    Activité : Technicien en numérisation

    Informations forums :
    Inscription : Juillet 2002
    Messages : 338
    Points : 155
    Points
    155
    Par défaut
    Merci pour votre réponse

    Un Left Join ? Je devrai regarder comment écrire cela lol Jamais fait jusqu'à date.

    Je laisse le billet ouvert au cas j'aurais un petit problème.

  4. #4
    Membre expert
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Octobre 2012
    Messages
    1 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2012
    Messages : 1 878
    Points : 3 467
    Points
    3 467
    Par défaut
    Bonjour angelevil, galoir,

    L'état qui me cause des problèmes doit afficher pour chaque boite le nom du responsable et non le ID_User.
    Pour faire cela simplement, tu peux remplacer le contrôle texte du ID par une liste déroulante qui aura pour source une requête basé sur la table "Utilisateurs". Deux colonnes, la première le ID et la deuxième le nom du user. Tu affiches seulement la deuxième colonne.

    Bonne journée

  5. #5
    Membre habitué
    Homme Profil pro
    Technicien en numérisation
    Inscrit en
    Juillet 2002
    Messages
    338
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Canada

    Informations professionnelles :
    Activité : Technicien en numérisation

    Informations forums :
    Inscription : Juillet 2002
    Messages : 338
    Points : 155
    Points
    155
    Par défaut
    Bonjour ou bonsoir Robert1957,

    Merci pour ton idée de remplacer les contrôles texte par liste déroulante.

    Mais comme l'état est créée par une requête, si je change le contrôle et sa source comment sera t'elle connectée à la requête de l'état afin que le No_Employe affecte la liste déroulante et afficher le nom complet ?!

    Merci de m'éclaircir

  6. #6
    Membre expert
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Octobre 2012
    Messages
    1 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2012
    Messages : 1 878
    Points : 3 467
    Points
    3 467
    Par défaut
    Bonjour angelevil,

    Attention je n'ai pas dit de changer la source, juste le contrôle la source reste la même. Voici comment changer le contrôle:

    Nom : ListeDeroulante.png
Affichages : 327
Taille : 47,9 Ko
    Ensuite à ce nouveau contrôle qui a la même source qu'avant, basé sur ta requête, tu affectes le contenu comme suit:

    Nom : ListeDeroulante2.PNG
Affichages : 302
Taille : 21,2 Ko

    Tu auras peut-être a corriger la requête du contenu, j'ai pris les noms des champs de ton post # 1.

    Et finalement son apparence comme suit:

    Nom : ListeDeroulante3.PNG
Affichages : 285
Taille : 19,4 Ko

    Bonne journée

  7. #7
    Membre habitué
    Homme Profil pro
    Technicien en numérisation
    Inscrit en
    Juillet 2002
    Messages
    338
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Canada

    Informations professionnelles :
    Activité : Technicien en numérisation

    Informations forums :
    Inscription : Juillet 2002
    Messages : 338
    Points : 155
    Points
    155
    Par défaut
    Merci pour les détails et l'explication

    Je vais tout de même essayer avec le code SQL car j'ai juste fait une fois un INNER JOIN dans un Select auparavant Faut bien se pratiquer lol

  8. #8
    Membre habitué
    Homme Profil pro
    Technicien en numérisation
    Inscrit en
    Juillet 2002
    Messages
    338
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Canada

    Informations professionnelles :
    Activité : Technicien en numérisation

    Informations forums :
    Inscription : Juillet 2002
    Messages : 338
    Points : 155
    Points
    155
    Par défaut
    Bon...

    J'essaie avec les INNER JOIN...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
     
    SELECT Boites.ID_Boite, Projets.Nom_Projet, Utilisateurs.Nom_Complet_Employe, Boites.Date_Saisie_1, Boites.Heure_Saisie_1, Utilisateurs.Nom_Complet_Employe
    FROM Utilisateurs INNER JOIN (Boites INNER JOIN (Projets INNER JOIN Projets.ID_Projet = Boites.ID_Projet ) ON Boites.Responsable_saisie_1 = Utilisateurs.No_Employe) ON Utilisateurs.No_Employe = Boites.Responsable_saisie_2;
    J'ai une erreur de syntaxe dans le Where... le curseur noir se met au = dans la condition
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     Projets INNER JOIN Projets.ID_Projet = Boites.ID_Projet
    J'essaie avec 3 Inner Join. J'oublie pour l'instant le LEFT INNER JOIN.

    Pourquoi 3 ? Parce que je veux le titre du projet, le nom du premier utilisateur de la saisie de données, ainsi que le deuxième utilisateur de la saisie de données...

    Après j'essayerai d'ajouter d'autres INNER JOIN pour sortir les 10 utilisateurs avec le nom du projet....

    Pouvez-vous me dire l'erreur dans la clause Where s.v.p. ?

  9. #9
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 859
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 859
    Points : 14 977
    Points
    14 977
    Par défaut
    bonjour,
    passe par le générateur de requêtes c'est plus facile pour créer les jointures, en cliquant sur l'icône des 3 petits points au bout de la ligne, tu ouvres l'interface de création de requêtes:

    Nom : frm_lst_qbe.JPG
Affichages : 294
Taille : 34,4 Ko

  10. #10
    Membre habitué
    Homme Profil pro
    Technicien en numérisation
    Inscrit en
    Juillet 2002
    Messages
    338
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Canada

    Informations professionnelles :
    Activité : Technicien en numérisation

    Informations forums :
    Inscription : Juillet 2002
    Messages : 338
    Points : 155
    Points
    155
    Par défaut
    Merci pour vos réponses à tous

    Après des heures à "tourner" en rond j'ai décidé de prendre la méthode de Robert1957.

    Ça fonctionne parfaitement

    Reste à arranger les paramètres du WHERE avec l'ajout de BETWEEN et les deux dates.

    Merci encore

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Modification d'une requête avec inner join
    Par Msysteme dans le forum Langage SQL
    Réponses: 3
    Dernier message: 24/04/2018, 00h10
  2. [HQL] Requête avec inner join
    Par Malatok dans le forum Hibernate
    Réponses: 8
    Dernier message: 03/10/2011, 18h52
  3. Ma requête avec INNER JOIN
    Par vocal94130 dans le forum Requêtes
    Réponses: 3
    Dernier message: 20/08/2010, 10h23
  4. [MySQL] Requête avec inner join
    Par kate59 dans le forum PHP & Base de données
    Réponses: 21
    Dernier message: 19/02/2008, 18h28
  5. requête avec inner join ?
    Par Melvine dans le forum Oracle
    Réponses: 5
    Dernier message: 30/03/2006, 10h16

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