|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() brown bobby Inscription : novembre 2010 Messages : 20 ![]() |
Bonjour,
Je souhaite faire dans un univers une jointure externe entre deux tables. Chacune des tables contient une autojointure permettant de selectioner les enregistrements valides. J'ai donc deux tables: - T1 avec 3 colonnes : Id, Code, Validite (liste non exhaustive) - T2 avec 3 colonnes : Code, Libelle, Validite (Un enregistrement de la table T1 n'a pas forcément un Code, d'où la jointure externe) Les jointures et autojointures créées dans l'univers génére le code SQL suivant: --------------------- Select T1.Id, T1.Code, T2.Libelle From T1 Left Outer Join T2 on (T1.Code=T2.Code And T1.Validite='1' And T2.Validite='1') --------------------- Ce code SQL ne me renvoie pas les résultats attendus puisqu'il ignore les conditions T1.Validite='1' And T2.Validite='1' et fait une jointure externe sur l'ensemble des enregistrements de la table T1 quelque soit leur la valeur du champ Validite. Si j'ai bien compris, il faudrait mettre ces conditions dans une clause Where. Comment l'indiquer dans Designer ou comment contourner le problème? Merci d'avance pour vos réponses si vous avez des explications à ce problème et des solutions. |
|
|
00
|
|
|
#2 |
![]() ![]() Julien LizzulInscription : mars 2008 Messages : 1 103 ![]() |
Bonjour,
Je pense que tu trouveras ta réponse ici. Il faut regarder dans le forum avant de poster, car ce post date d'hier. Bon courage
__________________
|
|
|
00
|
|
|
#3 |
|
Invité de passage
![]() brown bobby Inscription : novembre 2010 Messages : 20 ![]() |
Merci et désolé, je n'avais pas vu qu'il y avait déjà un sujet sur cette problématique...
J'ai lu ta réponse. La création d'une invite sur la selection de la variable n'est pas possible car c'est une variable "technique", invisible pour l'utilisateur. La création d'une table dérivée me paraît un peu trop dangereuse. Finalement, j'ai trouvé une solution en mettant des conditions sur l'objet créés. Le SQL généré fait une jointure externe en ignorant la jointure restrictive. En revanche, il met dans la clause WHERE les conditions mises sur l'objet. Je ne sais pas si c'est la meilleure solution et j'espère qu'elle n'aura pas trop d'impact mais à priori ça a l'air de marcher... |
|
|
00
|
|
|
#4 |
![]() ![]() Julien LizzulInscription : mars 2008 Messages : 1 103 ![]() |
Je te conseille de mettre une description sur l'objet en précisant qu'il y'a une condition dessus.
Si le sujet est résolu, n'oublie pas de cliquer sur en bas de page
__________________
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com