|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre confirmé
![]() Inscription : juillet 2005 Messages : 403 ![]() |
Bonjour à tous.
Le titre résume bien la question : quand je définis une jointure interne entre 2 tables, Impromptu la traduit par une égalité des champs dans la clause where de la requête. N'est-il pas possible d'utiliser la syntaxe INNER JOIN ?? Ce qui est surprenant, c'est que dans la zone [Exceptions Joins] du fichier cogdmor.ini, j'ai une ligne : Inner_Syntax=" INNER JOIN " ce qui laisserait croire qu'Impromptu devrait utiliser cette syntaxe...(mais ce n'est pas le cas). |
|
|
00
|
|
|
#2 |
|
Membre éclairé
![]() ![]() Inscription : juillet 2006 Messages : 212 ![]() |
Quel est ton but ? que va t'apporter l'utilisation du Inner join à la place de l'égalité dans la clause where ?
|
|
|
00
|
|
|
#3 | |||||
|
Membre confirmé
![]() Inscription : juillet 2005 Messages : 403 ![]() |
Citation:
![]() Je vais tenter d'expliquer mon soucis... Mon catalogue mêle allegrement jointures internes et externes. Imaginons que ma requête lie 3 tables de la manière suivante : table_1 -> (interne) table_2 table_3-> (externe) table_2. Ca me donne le code : Code :
Ce que j'aimerais, c'est obtenir le code : Code :
|
|||||
|
|
00
|
|
|
#4 |
|
Membre confirmé
![]() Inscription : juillet 2005 Messages : 403 ![]() |
Je sais que mon raisonnement est un peu bancal...
mais personne ne peut me dire s'il est possible d'utiliser le INNER JOIN ?? (et si oui comment ?) |
|
|
00
|
|
|
#5 | |||||
|
Membre éclairé
![]() ![]() Inscription : juillet 2006 Messages : 212 ![]() |
Pour les Inner join dans impromptu, à mon avis, c'est mort...
Citation:
Code :
Il faudrait lui mâcher le travail en créant une vue BD avec ta sous requête, et dans impromptu, tu créé une jointure entre ta table T3 et t'a vue. |
|||||
|
|
00
|
|
|
#6 |
|
Membre confirmé
![]() Inscription : juillet 2005 Messages : 403 ![]() |
Je pense aussi que je demande l'impossible. D'autant qu'on peut mêler des jointures internes et externes de différentes manières, qui donneront des résultats différents selon les jointures traitées en priorité.
Par contre, ma curiosité reste sur sa faim quant au choix de la syntaxe utilisée par Impromptu pour les jointures. L'exemple que tu me donnes utilise le (+) pour les jointures externes. Chez moi, Impromptu utilise le LEFT OUTER JOIN. Le fichier cogdmor.ini spécifie bien : Left_Eql=" LEFT OUTER JOIN " Right_Eql=" RIGHT OUTER JOIN " ainsi que Inner_Syntax=" INNER JOIN " Mais il utilise le " = " pour les jointures internes. J'avoue que je ne saisis pas bien pourquoi... Cela dit, il m'a fallut passer à la syntaxe (+) car Oracle 9.2 ne sait pas correctement traiter les conditions de jointure avec des constantes. C'est à cette occasion que j'ai du me frotter au fichier cogdmor.ini, et j'avoue que nombre de parmètres sont obscurs. Si tu sais où trouver un descriptif de l'ensemble des paramètres, ça m'intéresse, car la documentation fournie avec Impromptu est plutôt discrète sur le sujet. |
|
|
00
|
|
|
#7 |
|
Membre éclairé
![]() ![]() Inscription : juillet 2006 Messages : 212 ![]() |
Je doute que ce type de doc existe ... peut-être à demander au support Cognos ?
|
|
|
00
|
|
|
#8 |
|
Membre confirmé
![]() Inscription : juillet 2005 Messages : 403 ![]() |
Arrff, j'y ai bien pensé, mais ma boîte n'a pas de n° client...
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com