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

Modélisation Discussion :

gestion de pesticide : Problème de relations entre table qui provoque des erreurs sur des requêtes


Sujet :

Modélisation

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    agriculture
    Inscrit en
    Avril 2021
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Japon

    Informations professionnelles :
    Activité : agriculture
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Avril 2021
    Messages : 7
    Points : 1
    Points
    1
    Par défaut gestion de pesticide : Problème de relations entre table qui provoque des erreurs sur des requêtes
    Bonjour à tous et à toutes,
    avant d'expliquer mon problème je vais expliquer en grande ligne le projet. j'ai regarder sur le forum mais j'ai pas vu de sujet concernant mon problème

    Je suis en train de créer une base de données sur des pesticides afin de pouvoir faire un compte rendu sur quel pesticide à été employé, du nombre de traitement effectuer sur une culture si la dose n'est pas dépasser en donnant une aide pour la décision de quel traitement serait utile.

    en données brutes :
    un pesticide peut agir soit sur des maladies, soit sur des insectes ou sur les deux
    un pesticide peut traiter plusieurs maladies/insectes sur plusieurs légumes
    il y a la composition chimique qui permet d'aider à la décision pour le traitement car plusieurs pesticides peuvent avoir la même composition et il convient de ne pas les utilisés plusieurs fois d'affilés.

    A partir de ces données j'ai donc créer plusieurs tables les titres sont en anglais mais compréhensibles :
    Nom : relation de table pesticide.JPG
Affichages : 279
Taille : 119,4 Ko

    IT nom de table est utilisé pour les relations plusieurs à plusieurs les clés sont étrangères types de données numériques
    les clés primaires ont des types de données numéro auto

    la table id pesticide est reliée à plusieurs table mais dans propriété "la sous feuille de données est "it pesticide decease" (le logiciel a créé cette relation automatiquement)

    comme un pesticide agit sur plusieurs légumes et insectes ainsi que sur plusieurs maladies j'ai créer deux tables intermédiaires une pour pesticide insecte et une pour les maladies (decease)

    les table irac et frac concerne la codification du groupe chimique auquel appartient le pesticide un pesticide appartient a un ou plusieurs groupe et un groupe contient 1 ou plusieurs composé chimique ex pesticide 1 appartient au groupe 2 nom de molécule doliprane
    pesticide 2appartient au groupe 2 nom de molécule pénicilline


    mon problème est que je ne sais pour quelle raison en créant une requête qui a partir du numéro de culture m'afficherait le numéro de traitement le nom des pesticides, le nom maladies ou insectes etc une fois la requête la marche, et si je la recréé cette fois la elle ne marche pas.
    Nom : requête afficher les données.JPG
Affichages : 268
Taille : 103,2 Ko

    donc si je refais cette requête manuellement cela ne marche pas. je ne comprend pas d'où peut venir le problème hormis celui des relations de tables soit la table it treatment ( ne faudra t il pas faire une requête) ou est que cela proviendrai t il des deux tables it pesticides decease et it pesticide insect)

    En espérant avoir été assez clair, j'espère que quelqu'un pourra m'éclaircir sur mon problème et toute aide sera la bienvenue.

    Merci d'avance.

  2. #2
    Modérateur
    Avatar de bertiny
    Homme Profil pro
    Enseignant
    Inscrit en
    Mars 2013
    Messages
    1 282
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2013
    Messages : 1 282
    Points : 1 831
    Points
    1 831
    Billets dans le blog
    1
    Par défaut
    Bonjour
    Montre nous les deux requêtes. La première et celle que tu crées manuellement. (Code SQL)
    Le monde évolue et nous avec. La technologie change les idées de ceux qui s'intéressent et pensent qu'il est nécessaire de changer.
    Oh là!! Que c'est bien de trouver la solution à un problème

    Pensons à améliorer nos connaissances en toute humilité car on apprend tous tous les jours !!!

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    agriculture
    Inscrit en
    Avril 2021
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Japon

    Informations professionnelles :
    Activité : agriculture
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Avril 2021
    Messages : 7
    Points : 1
    Points
    1
    Par défaut Balise CODE
    Bonjour merci pour votre attention,

    voici le code sql pour la requête qui marche :

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT DISTINCT culture.[id culture], [It treatment].[id treatment], [id vegetable].[vegetable name], [id category].[category name], [id pesticide].[pesticide name], [molecule irac].[name  molecule], [id irac].[code irac], [id pesticide].[id pesticide], [It treatment].[id pesticide], [IT IRAC mol].[id pesticide], [IT IRAC mol].[id irac], [IT IRAC mol].[id molecule irac]
    FROM culture INNER JOIN ([id irac] INNER JOIN ([molecule irac] INNER JOIN (((worker INNER JOIN (([id category] INNER JOIN [id pesticide] ON [id category].[Id category] = [id pesticide].[id category]) INNER JOIN ([id vegetable] INNER JOIN [It treatment] ON [id vegetable].[id vegetable] = [It treatment].[id vegetable]) ON [id pesticide].[id pesticide] = [It treatment].[id pesticide]) ON worker.[id worker] = [It treatment].[id worker]) INNER JOIN [it pesticide insect] ON ([id vegetable].[id vegetable] = [it pesticide insect].[id vegetable]) AND ([id pesticide].[id pesticide] = [it pesticide insect].[id pesticide])) INNER JOIN [IT IRAC mol] ON [id pesticide].[id pesticide] = [IT IRAC mol].[id pesticide]) ON [molecule irac].[id molecule irac] = [IT IRAC mol].[id molecule irac]) ON [id irac].[id irac] = [IT IRAC mol].[id irac]) ON ([id vegetable].[id vegetable] = culture.[id vegetable]) AND (culture.[id culture] = [It treatment].[id culture]);


    Et voici celle qui ne marche pas :

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT DISTINCT culture.[id culture], [It treatment].[id treatment], [id vegetable].[vegetable name], [id category].[category name], [id pesticide].[pesticide name], [molecule irac].[name  molecule], [id irac].[code irac], [id pesticide].[id pesticide], [It treatment].[id pesticide], [IT IRAC mol].[id pesticide], [IT IRAC mol].[id irac], [IT IRAC mol].[id molecule irac]
    FROM [id insect] INNER JOIN (worker INNER JOIN ([molecule irac] INNER JOIN (((culture INNER JOIN [id vegetable] ON culture.[id vegetable] = [id vegetable].[id vegetable]) INNER JOIN ((([id category] INNER JOIN [id pesticide] ON [id category].[Id category] = [id pesticide].[id category]) INNER JOIN ([id irac] INNER JOIN [IT IRAC mol] ON [id irac].[id irac] = [IT IRAC mol].[id irac]) ON [id pesticide].[id pesticide] = [IT IRAC mol].[id pesticide]) INNER JOIN [it pesticide insect] ON [id pesticide].[id pesticide] = [it pesticide insect].[id pesticide]) ON [id vegetable].[id vegetable] = [it pesticide insect].[id vegetable]) INNER JOIN [It treatment] ON ([id vegetable].[id vegetable] = [It treatment].[id vegetable]) AND ([id pesticide].[id pesticide] = [It treatment].[id pesticide]) AND (culture.[id culture] = [It treatment].[id culture])) ON [molecule irac].[id molecule irac] = [IT IRAC mol].[id molecule irac]) ON worker.[id worker] = [It treatment].[id worker]) ON ([It treatment].[id insect] = [id insect].[id insect]) AND ([id insect].[id insect] = [it pesticide insect].[id insect]);
    J'ai oublié de préciser qu'il y a une petite différence dans la deuxième requête j'ai placer la table id insecte pour afficher le nom des insectes si je l'enlève la requête fonctionne de ce fait pourquoi cette table pose problème.

    De même si je créer une requête en remplacer la table it pesticide insect par it pesticide decease ( je remplace aussi la partie it irac mol par it frac mol cela ne marche pas non plus.

  4. #4
    Modérateur
    Avatar de bertiny
    Homme Profil pro
    Enseignant
    Inscrit en
    Mars 2013
    Messages
    1 282
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2013
    Messages : 1 282
    Points : 1 831
    Points
    1 831
    Billets dans le blog
    1
    Par défaut
    Bonjour
    celà depend de la manière dont tu as établi tes relation et comment tu remplis tes tables. Si tu n'as pas pris en compte ta table id insect et que tu viennes juste l'ajouter pour prendre ses enregistrement en relation avec les autres tables alors certainement çà ne marche pas.
    As-tu essayé d'utiliser le LEFT JOIN au lieu de INNER JOIN pour les id insect?
    Le monde évolue et nous avec. La technologie change les idées de ceux qui s'intéressent et pensent qu'il est nécessaire de changer.
    Oh là!! Que c'est bien de trouver la solution à un problème

    Pensons à améliorer nos connaissances en toute humilité car on apprend tous tous les jours !!!

  5. #5
    Nouveau Candidat au Club
    Homme Profil pro
    agriculture
    Inscrit en
    Avril 2021
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Japon

    Informations professionnelles :
    Activité : agriculture
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Avril 2021
    Messages : 7
    Points : 1
    Points
    1
    Par défaut
    Dans l'image de relation de table la table id insect est reliée à la table it pesticide insect car je pensais par le biais de la clé id pesticide qui a une relation avec toute les tables, les données pourraient être accessibles indirectement. J'ai aussi relié directement la table id insect à la table it treatment mais même résultat lorsque la table id insect est présente rien ne marche.

    Pour ce qui est de la jointure je vais tester demain car il commence à se faire tard ici.

    Je vous tiendrais au courant.

    Merci encore

  6. #6
    Modérateur
    Avatar de bertiny
    Homme Profil pro
    Enseignant
    Inscrit en
    Mars 2013
    Messages
    1 282
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2013
    Messages : 1 282
    Points : 1 831
    Points
    1 831
    Billets dans le blog
    1
    Par défaut
    En réalité, lorsque tu remplis la table it pesticide insecte, tu doit choisir par le biais de cette clé étrangère, à travers une liste déroulante, les noms des insectes. Ce qui passera donc lorsque tu vas souhaiter voir les enregistrements avec les noms des insectes.
    Le monde évolue et nous avec. La technologie change les idées de ceux qui s'intéressent et pensent qu'il est nécessaire de changer.
    Oh là!! Que c'est bien de trouver la solution à un problème

    Pensons à améliorer nos connaissances en toute humilité car on apprend tous tous les jours !!!

  7. #7
    Nouveau Candidat au Club
    Homme Profil pro
    agriculture
    Inscrit en
    Avril 2021
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Japon

    Informations professionnelles :
    Activité : agriculture
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Avril 2021
    Messages : 7
    Points : 1
    Points
    1
    Par défaut
    Bonjour,

    Je reviens pour un petit feed back.

    Je n'ai pu retoucher le fichier que aujourd'hui.

    "As-tu essayé d'utiliser le LEFT JOIN au lieu de INNER JOIN pour les id insect? "

    J'ai essayé et lors de l'enregistrement un message d'erreur apparaît : jointure externes ambiguës

    En créant une requête utilisant la table vegetable insect et it treatment et en l'intégrant dans la requête dans ce cas le nom de l'insect se marque, dans ce cas de figure je n'intègre pas la table id insect dans la requête puisqu’elle est présente par la requête intégrée. Problème lorsque j'utilise la même méthode mais en utilisant la table decease cela ne marche pas . lorsque je supprime la table it treatment les information s'affichent ; ce que je ne comprend pas c'est où est le conflit car si cela marche pour les insectes pourquoi cela ne marche t il pas pour les maladies. La structure étant la même pour les deux.

    En regardant le fichier sql des deux requêtes la seule différence se situe sur la table "it FRAC mol" qui se marque pas (pour la requete insect l’équivalent est la table "it IRAC mol).
    lorsque je supprime la table


    Je voudrais utiliser ces requêtes dans des formulaires de recherches et voir par ce biais là que les données sont bien corrélées entre elles.

    En ce moment je place des listes de choix déroulant dans ma table it treatment et je vais voir si cela change quelque chose dans les requêtes.

    Il se peut aussi que j'ai un problème de compréhension entre les relation de tables et les formulaires car pour moi si cette requête ne marche pas je ne pourrais pas afficher les données sur le formulaires

    Je reposterais un message si il y a du nouveau.

  8. #8
    Nouveau Candidat au Club
    Homme Profil pro
    agriculture
    Inscrit en
    Avril 2021
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Japon

    Informations professionnelles :
    Activité : agriculture
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Avril 2021
    Messages : 7
    Points : 1
    Points
    1
    Par défaut
    Bonjour,

    depuis hier j'ai réussi à éclaircir certains points.

    J'ai dan s un premier temps placer des listes déroulantes dans les tables; cela permet d'être un peu plus visible.

    Pour ce qui est des relations je n'ai rien touché car il ne me semblait pas qu'il y est de problèmes de ce coté là.

    Pour ce qui est des requêtes si je créais une requête regroupant toutes les informations la requête ne marchait pas. j'ai donc vérifier par tâtonnement en rajoutant une table a chaque fois.

    Sur la photo suivante la requête marche
    Nom : requete ok.JPG
Affichages : 229
Taille : 50,0 Ko

    Si je rajoute la table vegetable pour afficher le nom du légume dans ce cas la requête ne marche plus. je me suis dis que peut être parce que la table est reliée à d autres tables cela créer un conflit.

    Toujours pas tâtonnement j'ai créer une requête en me basant sur l'image et je 'lai inséré dans une nouvelle requête en y ajoutant la table vegetable et la toutes les informations apparaissent. Je me demande juste si cela est cohérent pour vous ou est ce que cela posera plus tard?

    Merci pour votre attention

  9. #9
    Modérateur
    Avatar de bertiny
    Homme Profil pro
    Enseignant
    Inscrit en
    Mars 2013
    Messages
    1 282
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2013
    Messages : 1 282
    Points : 1 831
    Points
    1 831
    Billets dans le blog
    1
    Par défaut
    Bonjour
    En réalité si les tables sont en bonne relation çà ne devrait pas poser un problème. Mais comme je ne connais pas comment tu t'y prends pour remplir, si çà marche bien avec cette méthode que tu as trouvé c'est une bonne chose. Sinon tu peux toujours poster ta base de données pour qu'on regarde ensemble.
    Le monde évolue et nous avec. La technologie change les idées de ceux qui s'intéressent et pensent qu'il est nécessaire de changer.
    Oh là!! Que c'est bien de trouver la solution à un problème

    Pensons à améliorer nos connaissances en toute humilité car on apprend tous tous les jours !!!

  10. #10
    Nouveau Candidat au Club
    Homme Profil pro
    agriculture
    Inscrit en
    Avril 2021
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Japon

    Informations professionnelles :
    Activité : agriculture
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Avril 2021
    Messages : 7
    Points : 1
    Points
    1
    Par défaut
    Bonjour,

    Pour vérifier la base de donnée, quels éléments dois-je vous montrer pour que cela soit le plus clair possible. Le schéma de des relations entre les tables? Les tables en détails une à une ou la liste des données brutes? ( c'est à dire pour le cas ici les données sur les pesticides )

  11. #11
    Modérateur
    Avatar de bertiny
    Homme Profil pro
    Enseignant
    Inscrit en
    Mars 2013
    Messages
    1 282
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2013
    Messages : 1 282
    Points : 1 831
    Points
    1 831
    Billets dans le blog
    1
    Par défaut
    Tu compresses juste ta base de données et tu postes en pièce jointe ici et pourra regarder ensemble.
    Le monde évolue et nous avec. La technologie change les idées de ceux qui s'intéressent et pensent qu'il est nécessaire de changer.
    Oh là!! Que c'est bien de trouver la solution à un problème

    Pensons à améliorer nos connaissances en toute humilité car on apprend tous tous les jours !!!

  12. #12
    Nouveau Candidat au Club
    Homme Profil pro
    agriculture
    Inscrit en
    Avril 2021
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Japon

    Informations professionnelles :
    Activité : agriculture
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Avril 2021
    Messages : 7
    Points : 1
    Points
    1
    Par défaut
    bonjour,

    Je joins le fichier à ce message. Pour vous aider à comprendre le schéma des relations de table il y a plusieurs tableau comprenant des données brutes concernant les pesticides et une concernant les traitements c'est a dire jour de traitement quantité utilisé etc .

    Pour info depuis la dernière fois j'ai réussi à faire un formulaire de recherche utilisant les pesticide insecte et maladie donc ma partie donnée brute semble correcte. En réfléchissant j'ai compris qu'il n y a pas a voir de lien direct entre la table traitement et les tables insectes et maladies car avec une requête dans les formulaire on peut les relier indirectement. mon problème de compréhension vient des flux dans les tables et comment les relier dans un formulaires.

    Par contre je voudrais dans mon schéma je ne vois pas comment je pourrais créer une requête pour compter combien de fois j'ai utilisé un pesticide afin d'avoir un message d'alerte genre pesticide utiliser trop de fois"

    Merci

Discussions similaires

  1. Import Access - problème de relations entre tables
    Par Juwan dans le forum QlikView
    Réponses: 2
    Dernier message: 11/01/2012, 16h59
  2. problème de relation entre tables
    Par sky88 dans le forum Modélisation
    Réponses: 3
    Dernier message: 27/06/2009, 21h18
  3. [97] Problème de relations entres tables
    Par totojordi dans le forum Modélisation
    Réponses: 6
    Dernier message: 28/05/2008, 00h31
  4. Problème de relation entre tables
    Par florian04 dans le forum Modélisation
    Réponses: 3
    Dernier message: 05/05/2008, 09h29
  5. Problème de relation entre deux tables + autre chose
    Par Goth_sensei dans le forum Langage SQL
    Réponses: 7
    Dernier message: 30/03/2006, 21h49

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