|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Nouveau Membre du Club
![]() Inscription : juin 2007 Messages : 271 ![]() |
Je cherche à faire une jointure externe. Voici ma req.
Code :
mais ça marche pas. je récupère que les lignes en commun merci |
||
|
|
00
|
|
|
#2 | ||
![]() ![]() Inscription : janvier 2004 Messages : 15 861 ![]() |
En simplifiant ça donne quoi :
Code :
Code :
WHERE (SELECT to_date(datetab,'dd/mm/rr') FROM table3 WHERE cle='DATETAB') = tab2.datetab c'est pourquoi j'ai ajouté le NVL: Code :
NVL(tab2.datetab,to_date(tab3.datetab,'dd/mm/rr') ) = to_date(tab3.datetab,'dd/mm/rr') |
||
|
|
00
|
|
|
#3 |
|
Expert Confirmé Sénior
![]() Inscription : juillet 2003 Messages : 3 437 ![]() |
remplacer
Code :
(SELECT to_date(datetab,'dd/mm/rr') FROM table3 WHERE cle='DATETAB') = tab2.datetab Code :
( tab2.datetab IS NULL OR tab2.datetab = (SELECT to_date(datetab,'dd/mm/rr') FROM table3 WHERE cle='DATETAB') )
__________________
More Code : More Bugs. Less Code : Less Bugs |
|
|
00
|
|
|
#4 |
|
Nouveau Membre du Club
![]() Inscription : juin 2007 Messages : 271 ![]() |
Après le test.
la solution de McM ne change rien au résultat de la requête. En revanche la solution de orafrance me donne plutôt toutes les lignes de la table table2 au lieu que ça soit de la table 1...?? |
|
|
00
|
|
|
#5 |
![]() ![]() Inscription : janvier 2004 Messages : 15 861 ![]() |
le (+) ne doit pas être du bon coté alors.
|
|
|
00
|
|
|
#6 |
|
Membre Expert
![]() Pacman PacmanBusiness analyst Inscription : juin 2004 Messages : 1 417 ![]() |
Salut !
Le "alors" fait un peu "au pif" ![]() C'est quand même vachement plus clair avec un LEFT OUTER JOIN
__________________
(c'est ma photo) Paku, Paku ! Pour les jeunes incultes : non, je ne suis pas un pokémon... Le pacblog : http://pacmann.over-blog.com/ |
|
00
|
|
|
#7 | |||
|
Membre Expert
![]() Inscription : août 2008 Messages : 1 271 ![]() |
Il faudrait fournir une adaptation correcte de la requête de base !
Table3 n'est présent que dans une sous-requête dans la clause WHERE, donc ses colonnes sont innacessibles au niveau de la requête principale, donc Code :
Citation:
Code :
AND tab1.datetab = (SELECT max(i2.datetab) FROM table1 i2) |
|||
|
|
00
|
Copyright © 2000-2012 - www.developpez.com