[Résolu] Selection selon champs d'une autre table
Modérateur : Vilains modOOs
Règles du forum
Cette section est dédiée au module Base et plus particulièrement sur le langage SQL ou sur les connexions aux SGBD tiers. Vous ne devez pas poster ici de questions sur les macros mais utiliser la section éponyme.
Pour accélérer les réponses, vous pouvez mettre en ligne votre base en joignant un fichier ODB : comment faire.
Cette section est dédiée au module Base et plus particulièrement sur le langage SQL ou sur les connexions aux SGBD tiers. Vous ne devez pas poster ici de questions sur les macros mais utiliser la section éponyme.
Pour accélérer les réponses, vous pouvez mettre en ligne votre base en joignant un fichier ODB : comment faire.
-
martinterrier
- Membre OOrganisé

- Messages : 97
- Inscription : 21 avr. 2021 17:28
[Résolu] Selection selon champs d'une autre table
Bonjour à tous,
Dans la base ci-jointe (cf requête REQ_ETABLISSEMENT_SANS_CONTROLE), je cherche à sélectionner dans une requête les établissements qui n'ont pas fait l'objet d'un contrôle ET n'ont pas fait l'objet d'un contrôle avec la thématique de contrôle "LRAR". Autrement dit, ceux qui n'ont pas d'ID contrôle associé et ceux, ayant fait l'objet d'un contrôle ou plus, qui n'ont pas de thématique de contrôle ID_3 (LRAR) associé
Concrètement, le résultat devrait être les ID_ ETABLISSEMENT : 58, 59, 61 et 62.
Je tente donc la requête suivante : Cette requête me ramène, en sus des ID recherchés, l' ID 57: l'établissement ID_57 apparait puisque les deux thématiques de contrôle 3 et 4 ont bien été faites le concernant, il apparait puisque j'ai demandé toutes les thématiques (+ quand le champs est nul) sauf la "3": Ceci constitue donc un problème puisque l'établissement "ID_57" a déjà bénéficié de la campagne de contrôle "LRAR" : si je cherchais à n'obtenir que les établissements n'ayant pas encore fait l'objet d'une telle campagne, alors cet établissement recevrait un nouveau contrôle "LRAR" qui ferait alors doublon.
Je comprends donc bien pourquoi l'ID_57 s'affiche, mais je ne parviens pas à me formuler / comprendre comment ne pas le faire apparaitre. J'ai tenté un certain nombre de combinaisons avec "OR", mais je ne parviens jamais au résultat escompté. je pense que la solution doit être du côté de l'association de conditions style "ne pas afficher les établissements qui ont fait l'objet de contrôles avec les thématiques ID3 et ID4" mais je n'arrive pas à le traduire en SQL...
Je vous remercie pour votre aide et j'espère que la base jointe sera assez parlante, en complément de ce que j'ai essayé de synthétiser ici.
Merci et bon après-midi!
Dans la base ci-jointe (cf requête REQ_ETABLISSEMENT_SANS_CONTROLE), je cherche à sélectionner dans une requête les établissements qui n'ont pas fait l'objet d'un contrôle ET n'ont pas fait l'objet d'un contrôle avec la thématique de contrôle "LRAR". Autrement dit, ceux qui n'ont pas d'ID contrôle associé et ceux, ayant fait l'objet d'un contrôle ou plus, qui n'ont pas de thématique de contrôle ID_3 (LRAR) associé
Concrètement, le résultat devrait être les ID_ ETABLISSEMENT : 58, 59, 61 et 62.
Je tente donc la requête suivante : Cette requête me ramène, en sus des ID recherchés, l' ID 57: l'établissement ID_57 apparait puisque les deux thématiques de contrôle 3 et 4 ont bien été faites le concernant, il apparait puisque j'ai demandé toutes les thématiques (+ quand le champs est nul) sauf la "3": Ceci constitue donc un problème puisque l'établissement "ID_57" a déjà bénéficié de la campagne de contrôle "LRAR" : si je cherchais à n'obtenir que les établissements n'ayant pas encore fait l'objet d'une telle campagne, alors cet établissement recevrait un nouveau contrôle "LRAR" qui ferait alors doublon.
Je comprends donc bien pourquoi l'ID_57 s'affiche, mais je ne parviens pas à me formuler / comprendre comment ne pas le faire apparaitre. J'ai tenté un certain nombre de combinaisons avec "OR", mais je ne parviens jamais au résultat escompté. je pense que la solution doit être du côté de l'association de conditions style "ne pas afficher les établissements qui ont fait l'objet de contrôles avec les thématiques ID3 et ID4" mais je n'arrive pas à le traduire en SQL...
Je vous remercie pour votre aide et j'espère que la base jointe sera assez parlante, en complément de ce que j'ai essayé de synthétiser ici.
Merci et bon après-midi!
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Dernière modification par martinterrier le 16 oct. 2022 15:06, modifié 1 fois.
Obligation de version :
Libre Office 7.1.8.1 (x64) sous Windows 10
Libre Office 7.1.8.1 (x64) sous Windows 10
-
Dude
- IdOOle de la suite

- Messages : 26201
- Inscription : 03 mars 2006 07:45
- Localisation : 127.0.0.1
Re: Selection selon champs d'une autre table
Chez moi, OpenOffice m'affiche "T_THEMATIQUE_CONTROLE"."ID_THEMATIQUE_CONTROLE" avec une valeur.
Il ne peut en être autrement puisque tu as une relation.
Donc forcément IS NULL ne peut pas fonctionner.
.
Il ne peut en être autrement puisque tu as une relation.
Donc forcément IS NULL ne peut pas fonctionner.
.
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
-
martinterrier
- Membre OOrganisé

- Messages : 97
- Inscription : 21 avr. 2021 17:28
Re: Selection selon champs d'une autre table
Bonjour Dude,
merci de t'intéresser au sujet.
Je viens de télécharger ma base depuis le post et je n'obtiens pas la même chose -> c'est bien vide chez moi: Toujours est-il que cela ne change pas fondamentalement le problème (dans ton cas, bien sur, remplacer IS EMPTY par 0).
Je ne parviens de mon côté toujours pas à exclure (ou d'ailleurs, à afficher uniquement) les établissements qui ont des contrôles de type 3 et 4!
merci pour toute aide et bonne journée!
merci de t'intéresser au sujet.
Je viens de télécharger ma base depuis le post et je n'obtiens pas la même chose -> c'est bien vide chez moi: Toujours est-il que cela ne change pas fondamentalement le problème (dans ton cas, bien sur, remplacer IS EMPTY par 0).
Je ne parviens de mon côté toujours pas à exclure (ou d'ailleurs, à afficher uniquement) les établissements qui ont des contrôles de type 3 et 4!
merci pour toute aide et bonne journée!
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Obligation de version :
Libre Office 7.1.8.1 (x64) sous Windows 10
Libre Office 7.1.8.1 (x64) sous Windows 10
-
jeanmimi
- Grand Maître de l'OOffice

- Messages : 17219
- Inscription : 03 mars 2006 16:02
- Localisation : Venise verte
Re: Selection selon champs d'une autre table
Bonjour,
Pour reproduire l'affichage de la Requête de Dude, tu peux saisir cette instruction SQL dans la Requête :
Pour reproduire l'affichage de la Requête de Dude, tu peux saisir cette instruction SQL dans la Requête :
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
LibreOffice : Version : 25.8.4 (x64)(23 février 2026)
Adoptium JRE ou Oracle JRE (x64), Windows 10, Thunderbird, Firefox
Adoptium JRE ou Oracle JRE (x64), Windows 10, Thunderbird, Firefox
-
HRk2o
- Membre cOOnverti

- Messages : 366
- Inscription : 29 mai 2009 08:51
- Localisation : Guyane
Re: Selection selon champs d'une autre table
Bonjour,
et de cette façon: @+Je ne parviens de mon côté toujours pas à exclure (ou d'ailleurs, à afficher uniquement) les établissements qui ont des contrôles de type 3 et 4!
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Windows 10 sous AOO 4.1.16 et LibO 24.8.5.2
-
martinterrier
- Membre OOrganisé

- Messages : 97
- Inscription : 21 avr. 2021 17:28
Re: Selection selon champs d'une autre table
Bonjour HRk2o,
Merci pour cette réponse, mais ce n'est pas ce que je cherche! Tu constateras qu'avec IN, les établissements ID_57 et ID_60 apparaissent : je ne veux justement pas qu'ils soient pris en compte dans la requête, qui a pour finalité de ne sélectionner que les établissements :
1) Qui n'ont pas fait l'objet d'un contrôle
et
2) Qui n'ont pas fait l'objet d'un contrôle avec la thématique "LRAR".
Merci et bon après-midi!
Merci pour cette réponse, mais ce n'est pas ce que je cherche! Tu constateras qu'avec IN, les établissements ID_57 et ID_60 apparaissent : je ne veux justement pas qu'ils soient pris en compte dans la requête, qui a pour finalité de ne sélectionner que les établissements :
1) Qui n'ont pas fait l'objet d'un contrôle
et
2) Qui n'ont pas fait l'objet d'un contrôle avec la thématique "LRAR".
Merci et bon après-midi!
Obligation de version :
Libre Office 7.1.8.1 (x64) sous Windows 10
Libre Office 7.1.8.1 (x64) sous Windows 10
-
Dude
- IdOOle de la suite

- Messages : 26201
- Inscription : 03 mars 2006 07:45
- Localisation : 127.0.0.1
Re: Selection selon champs d'une autre table
Contradictoire puisque le 2 implique le 1.martinterrier a écrit : ↑22 sept. 2022 12:03 ne sélectionner que les établissements :
1) Qui n'ont pas fait l'objet d'un contrôle
et
2) Qui n'ont pas fait l'objet d'un contrôle avec la thématique "LRAR".
S'il n'y a pas de contrôle pour un établissement, il n'y aura forcément pas de contrôle "LRAR".
-
pulcinopio
- Membre prOOscrit
- Messages : 243
- Inscription : 13 juil. 2022 17:13
Re: Selection selon champs d'une autre table
Bien le bonjour à ces Messieurs,
Accepteriez-vous une remarque minuscule: c'est à dire: sans modifier la valeur NULL proposée par le champ, lorsque je faisais ma recherche (avec relations) je me limitais à noter > 0 ou <0 dans les critères du champ. (> plus grand que, < plus petit que).
Corrigez-moi si ma remarque n'est pas pertinente.
Merci pour m'aider à apprendre chaque jour quelque chose en plus.
Bien à vous
Accepteriez-vous une remarque minuscule: c'est à dire: sans modifier la valeur NULL proposée par le champ, lorsque je faisais ma recherche (avec relations) je me limitais à noter > 0 ou <0 dans les critères du champ. (> plus grand que, < plus petit que).
Corrigez-moi si ma remarque n'est pas pertinente.
Merci pour m'aider à apprendre chaque jour quelque chose en plus.
Bien à vous
Libre Office 6.0.4 sur Ubuntu 18.04
-
martinterrier
- Membre OOrganisé

- Messages : 97
- Inscription : 21 avr. 2021 17:28
Re: Selection selon champs d'une autre table
Contradictoire puisque le 2 implique le 1.
S'il n'y a pas de contrôle pour un établissement, il n'y aura forcément pas de contrôle "LRAR".
Dude, je pensais avoir été clair dès mon premier post, tout est dans la formulation il est vrai.
Je souhaites avoir une liste qui contient les établissements qui n'ont pas fait l'objet d'un contrôle, et, également, dans cette même liste, ceux qui ont fait l'objet d'un contrôle terrain mais pas encore un contrôle LRAR.
Une fois cette liste obtenue, je pourrai faire un contrôle LRAR à ces deux "publics": à terme, dans la base, chacun aura bien 1 controle LRAR. L'idée étant, par la requête, de ne pas sélectionner une seconde fois un établissement qui a déjà, par le passé, fait l'objet d'un contrôle LRAR.
J'espère être plus clair.
En fait, ma question est de comment faire un lien entre des contrôles et des établissements, et comment établir des listes d'établissement en fonction de la thématique de contrôles à réaliser.
Merci encore!
Obligation de version :
Libre Office 7.1.8.1 (x64) sous Windows 10
Libre Office 7.1.8.1 (x64) sous Windows 10
-
HRk2o
- Membre cOOnverti

- Messages : 366
- Inscription : 29 mai 2009 08:51
- Localisation : Guyane
Re: Selection selon champs d'une autre table
en rajoutant dans la table 'CONTROLE' un nouveau champ "CTRL_OFF" booléen, à cocher pour les établissements où la tâche est accomplie, cela pourrait se faire:
@+
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Windows 10 sous AOO 4.1.16 et LibO 24.8.5.2
-
pulcinopio
- Membre prOOscrit
- Messages : 243
- Inscription : 13 juil. 2022 17:13
Re: Selection selon champs d'une autre table
martinterrier a écrit : ↑22 sept. 2022 13:17Veuillez excuser si je m'y suis mis. J'avoue avoir pensé que vous pouviez aussi considérer soit l'inclusion soit biffer ou exclure les objets qui ne répondaient pas à vos critères.
En fait, ma question est de comment faire un lien entre des contrôles et des établissements, et comment établir des listes d'établissement en fonction de la thématique de contrôles à réaliser.
Merci encore!
Comme vous pouvez le constater, plusieurs solutions s'offrent à vous....
Libre Office 6.0.4 sur Ubuntu 18.04
-
Rafkus_pl
- Membre lOOyal

- Messages : 35
- Inscription : 23 févr. 2022 11:45
Re: Selection selon champs d'une autre table
Dans la requête "REQ_ETABLISSEMENT_SANS_CONTROLE", au lieu de la condition :
entrez ce qui suit :
Code : Tout sélectionner
WHERE ( "T_THEMATIQUE_CONTROLE"."ID_THEMATIQUE_CONTROLE" != 3 OR "T_THEMATIQUE_CONTROLE"."ID_THEMATIQUE_CONTROLE" IS NULL )Code : Tout sélectionner
WHERE NOT "T_ETABLISSEMENT_1"."ID_ETABLISSEMENT" IN ( SELECT DISTINCT "T_CONTROLE"."ID_ETABLISSEMENT" FROM "T_CONTROLE" WHERE "ID_THEMATIQUE_CONTROLE" = 3 )Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
OpenOffice 4.1.6, LibreOffice 7.1.6 - Widows 10
J'écris avec Google Translator, désolé pour l'orthographe...
J'écris avec Google Translator, désolé pour l'orthographe...
-
pulcinopio
- Membre prOOscrit
- Messages : 243
- Inscription : 13 juil. 2022 17:13
Re: Selection selon champs d'une autre table
Cher Monsieur, je me permets de revenir sur la question avec une proposition.
C'est à dire que, dans le but d'un résultat confaisant, j'aimerais que vos considériez le fichier en annexe (sans vouloir refaire le monde) et redimensionner le concept, aussi pour permettre aux membres du forum de mieux comprendre vos exigeances.
Bien à vous
C'est à dire que, dans le but d'un résultat confaisant, j'aimerais que vos considériez le fichier en annexe (sans vouloir refaire le monde) et redimensionner le concept, aussi pour permettre aux membres du forum de mieux comprendre vos exigeances.
Bien à vous
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Libre Office 6.0.4 sur Ubuntu 18.04
-
pulcinopio
- Membre prOOscrit
- Messages : 243
- Inscription : 13 juil. 2022 17:13
Re: Selection selon champs d'une autre table
Est-ce je peux vous tutoyer?
Alors voilà l'échec qui t'a bloqué: tu ne voulais pas afficher l'objet non contrôlé.
Si tu considére les dates d'entretien effectuées, tu peux toujours dire que t'as pas pu mettre à jour lundi, mais que tu reviendras mardi p.e.
Par contre dans ton agenda hebdomadaire qui prépare ton futur, tu n'auras plus besoin de ce champ là. et tu peux donc éviter de l'afficher.

Alors voilà l'échec qui t'a bloqué: tu ne voulais pas afficher l'objet non contrôlé.
Si tu considére les dates d'entretien effectuées, tu peux toujours dire que t'as pas pu mettre à jour lundi, mais que tu reviendras mardi p.e.
Par contre dans ton agenda hebdomadaire qui prépare ton futur, tu n'auras plus besoin de ce champ là. et tu peux donc éviter de l'afficher.
La modération vous a écrit:Merci de ne pas poster plusieurs messages à la suite, si vous devez ajouter un complément d'information, le bouton "Editer" à la droite du message permet d'y remédier.
En attendant une prochaine réponse, vous pouvez participer également en répondant à d'autres questions sur notre forum.
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Libre Office 6.0.4 sur Ubuntu 18.04
-
martinterrier
- Membre OOrganisé

- Messages : 97
- Inscription : 21 avr. 2021 17:28
Re: Selection selon champs d'une autre table
Bonjour Rafkus_pl et bonjour pulpicino!
Rafkus_pl, merci beaucoup pour ta réponse que je viens de tester et surtout, de comprendre. Le travail était donc à faire au niveau de l'établissement et non des contrôles!
Le langage SQL est (comme tous les langages certainement), avant tout une affaire de logique et merci pour cette leçon qui me permet encore de progresser sur le sujet!!
Bon dimanche à tous et encore une fois, merci pour toutes ces contributions bénévoles!
Rafkus_pl, merci beaucoup pour ta réponse que je viens de tester et surtout, de comprendre. Le travail était donc à faire au niveau de l'établissement et non des contrôles!
Le langage SQL est (comme tous les langages certainement), avant tout une affaire de logique et merci pour cette leçon qui me permet encore de progresser sur le sujet!!
Bon dimanche à tous et encore une fois, merci pour toutes ces contributions bénévoles!
Obligation de version :
Libre Office 7.1.8.1 (x64) sous Windows 10
Libre Office 7.1.8.1 (x64) sous Windows 10