|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Membre du Club
![]() bonero pross Inscription : janvier 2010 Messages : 160 ![]() |
Bonjour a tous,
Je me demande si il existe une maniere plus elegante d’ecrire cette requete vu que la sous-requete se repete au niveau de chaque critere. J’ai pense a utiliser un parameter mais les parameters ne prennent que des valeurs et non des resultats d’une autre sous-requete. Merci d’avance. Cordialement, Bonero. Code :
|
||
|
|
00
|
|
|
#2 | ||
|
Expert Confirmé
![]() Inscription : juillet 2007 Messages : 2 178 ![]() |
Bonsoir Bonero,
Tant que tu maîtriseras pas les jointures, tu auras ce genre de problème. Car celles-ci (les jointures) résoudront ton souci. Analysons ta requête Code sql :
DISTINCT veut dire "retourner un seul enregistrement" ; ==> tu demandes donc à Access de faire un test de présence dans une liste d'un seul élément !... pas très optimisé... ==> il s'agit donc, là encore, d'une jointure à établir entre FC_Q10 et ReportCountry (LEFT JOIN). Je te suggère, une nouvelle fois, de passer par l'assistant, c'est très clair, et Access fait rarement d'erreur de syntaxe SQL sur le code qu'il a, lui-même, généré.
__________________
Dis-nous et à bientôt, Richard. ---------------------------------------------------------------------------------------------- . et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !
|
||
|
|
00
|
|
|
#3 |
|
Membre du Club
![]() bonero pross Inscription : janvier 2010 Messages : 160 ![]() |
Merci Richard_35 pour ta reponse,
La sous requete Code :
(Select Distinct ReportCountry.CountryCode From ReportCountry ) |
|
|
00
|
|
|
#4 | |||
|
Expert Confirmé
![]() Inscription : juillet 2007 Messages : 2 178 ![]() |
Bonjour Bonero,
Citation:
Il n'empêche que Citation:
Citation:
Donc, la solution passe par des jointures.
__________________
Dis-nous et à bientôt, Richard. ---------------------------------------------------------------------------------------------- . et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !
|
|||
|
|
00
|
|
|
#5 | ||
|
Membre du Club
![]() bonero pross Inscription : janvier 2010 Messages : 160 ![]() |
Re-bonjour Richard,
Je sais tres bien que ce probleme peut etre resolu par les jointures mais le hic est que j’ai 1 seul champs de jointure dans la table ReportCountry tandis que j’en ai 3 au niveau de la table FC_Q10. Par consequent, je ne peux plus utiliser l’assistant car ce dernier ne propose que la possibilite de choisir qu’un seul champs de jointure entre 2 tables. Pour preuve, l’assistant n’est pas capable de representer graphiquement le code suivant qui donne le result escompte. Code :
Cordiallement, Bonero. |
||
|
|
00
|
|
|
#6 |
|
Expert Confirmé
![]() Inscription : juillet 2007 Messages : 2 178 ![]() |
Dans l'assistant, il faut ajouter trois fois la même table ReportCountry : Access va les suffixer ReportCountry_1 et ReportCountry_2 (sur 2003).
Ensuite, effectuer les jointures de tes trois champs de la table FC_Q10 vers les trois tables (un champ par table). Attention à indiquer les flèches à droite (LEFT JOIN). Tu devrais obtenir ce que tu souhaites.
__________________
Dis-nous et à bientôt, Richard. ---------------------------------------------------------------------------------------------- . et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !
|
|
|
00
|
|
|
#7 | ||
|
Membre du Club
![]() bonero pross Inscription : janvier 2010 Messages : 160 ![]() |
Salut Richard,
il y a une petite erreur qui s'etait glissee dans ma requete d'avant.C'est un INNER JOIN que je voulais definir car IN(dans une sous requete) “correspond” a un INNER JOIN(dans une jointure). Code :
J’ai suivi tes recommendations(mais plus de fleches au niveau des jointures car je veux un INNER Join) mais je n’obtiens pas le meme result. L’assistant interprete les 3 jointures (vers les tables ReportCountry, ReportCountry_1, ReportCountry_2) comme des conditions/criteres simultanees. Je ne veux pas avoir des conditions simultannees (ie AND ). Je precise d’ailleurs que je n’aurais meme pas besoin d’ajouter 3 fois la meme table (ReportCountry) si je voulais avoir des conditions simultannees. J’aurais pu avoir toutes les 3 jointures entre uniquement mes 2 tables (FC_Q10 et ReportCountry). Une autre suggestion??? Grand merci pour tes aides. |
||
|
|
00
|
|
|
#8 | |
|
Expert Confirmé
![]() Inscription : juillet 2007 Messages : 2 178 ![]() |
Citation:
Peux-tu poster l'image de ta requête (via l'assistant) ?
__________________
Dis-nous et à bientôt, Richard. ---------------------------------------------------------------------------------------------- . et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !
|
|
|
|
00
|
|
|
#9 |
|
Membre du Club
![]() bonero pross Inscription : janvier 2010 Messages : 160 ![]() |
Salut Richard,
Desole si je m’exprime mal. lol Ce tableau resume un peu ce que je veux obtenir. Condition 1: Jointure 1 ; INNER JOIN : Condition 2: Jointure 2 ; INNER JOIN: Condition 3: Jointure 3 ; INNER JOIN C’est a dire que je veux des conditions simultannees au niveau de chaque jointure prise individuellemt. Mais la relation entre les conditions elles-memes doit etre: Condition1 OR Condition2 OR Condition3 |
|
|
00
|
|
|
#10 |
|
Expert Confirmé
![]() Inscription : juillet 2007 Messages : 2 178 ![]() |
Avec un LEFT JOIN (flèche à droite), tu as les enregistrements de FC_Q10, avec :
__________________
Dis-nous et à bientôt, Richard. ---------------------------------------------------------------------------------------------- . et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com