|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Inscription : février 2007 Messages : 11 ![]() |
Bonjour,
J'espère que mon message sera clair car il n'est pas facile à décrire et je ne peux pas mettre de code (il est trop immonde) Voilà je voudrais faire une jointure externe sur une table à travers un between. Ma date doit être contenue entre deux autres dates mais ce n'est pas obligatoire (si la jointure ne retourne rien je veux quand même récupérer mes données des autres tables). Code :
FACTURE_PERIODE.DATEDEBUT BETWEEN HORAIRE.DEBUT AND HORAIRE.FIN Un grand merci d'avance. |
|
|
00
|
|
|
#2 | ||
|
Expert Confirmé Sénior
![]() ![]() ![]() Laurent SchneiderAdministrateur de base de données Inscription : décembre 2005 Messages : 2 927 ![]() |
Code :
|
||
|
00
|
|
|
#3 |
|
Invité de passage
![]() Inscription : février 2007 Messages : 11 ![]() |
Je n'ai pas compris la réponse :
qu'est ce que la table periode ? où dois-je mettre ce code dans mon where ou à la suite du from ? |
|
|
00
|
|
|
#4 |
|
Expert Confirmé Sénior
![]() ![]() ![]() Laurent SchneiderAdministrateur de base de données Inscription : décembre 2005 Messages : 2 927 ![]() |
dans ton from
sinon tu peux utiliser la syntaxe Oracle8 where datedebut(+) between db and fn |
|
00
|
|
|
#5 |
|
Invité de passage
![]() Inscription : février 2007 Messages : 11 ![]() |
J'ai essayé ca
Code :
FACTURE_PERIODE.DATEDEBUT BETWEEN HORAIRE.DEBUT(+) AND HORAIRE.FIN(+) mais ca ne change rien |
|
|
00
|
|
|
#6 | ||||
|
Expert Confirmé Sénior
![]() ![]() ![]() Laurent SchneiderAdministrateur de base de données Inscription : décembre 2005 Messages : 2 927 ![]() |
Code :
Code :
|
||||
|
00
|
|
|
#7 |
|
Invité de passage
![]() Inscription : février 2007 Messages : 11 ![]() |
Merci de ta patience
J'ai exactement la même chose que ta version 8 cepandant faut-il ajouter (+) pour les autres colonnes de la tables utilisées dans d'autres jointures ? Lorsque je les ajoute j'ai l'erreur oracle 01417 une table peut être de jointure externe pour une autre table au moins |
|
|
00
|
|
|
#8 |
|
Expert Confirmé Sénior
![]() ![]() ![]() Laurent SchneiderAdministrateur de base de données Inscription : décembre 2005 Messages : 2 927 ![]() |
... la nouvelle Syntaxe offre plus de fléxibilité.
Quelle est ta requête? |
|
00
|
|
|
#9 |
|
Invité de passage
![]() Inscription : février 2007 Messages : 11 ![]() |
je peux te l'envoyer en mp ? parceque je ne veux pas qu'elle figure dans un forum
|
|
|
00
|
|
|
#10 |
|
Expert Confirmé Sénior
![]() ![]() ![]() Laurent SchneiderAdministrateur de base de données Inscription : décembre 2005 Messages : 2 927 ![]() |
si tu veux, mais le mieux serait de créer un exemple reproduisible avec des CREATE TABLE et des INSERT ou alors SCOTT.EMP et SCOTT.BONUS et SCOTT.DEPT
|
|
00
|
|
|
#11 | ||||||||||
|
Expert Confirmé Sénior
![]() ![]() ![]() Laurent SchneiderAdministrateur de base de données Inscription : décembre 2005 Messages : 2 927 ![]() |
ok, j'ai bien reçu ta requête. le problème est qu'avec la syntaxe Oracle8, il n'est pas possible de faire une jointure externe vers 2 tables. En effet, ta table Horaire joint 2 tables (Relationcontrat et Paieperiode)
voici un exemple : Code :
Code :
Code :
Code :
Code :
HTH Laurent |
||||||||||
|
00
|
|
|
#12 |
|
Invité de passage
![]() Inscription : février 2007 Messages : 11 ![]() |
Merci pour ces explications.
Le fait de faire une sous requete ne me plait pas, cette vue est déjà très longue. j'ai essayé de transformer ma requête en utilisant ANSI mais je n'ai pas trouvé de bon tutoriel sur le sujet alors en partant de ton exemple ca a donné ce que j'ai envoyé en mp le problème est que j'ai une erreur ora-00918 definition de colonne ambigu |
|
|
00
|
|
|
#13 |
|
Invité de passage
![]() Inscription : février 2007 Messages : 11 ![]() |
okay j'ai trouvé pourquoi
j'attends le résultat de la requête mais ca parait plus long c normal ? |
|
|
00
|
|
|
#14 |
|
Expert Confirmé Sénior
![]() ![]() ![]() Laurent SchneiderAdministrateur de base de données Inscription : décembre 2005 Messages : 2 927 ![]() |
ça te parait plus long? Plus long que quoi?
Le fait que le Outer Join prenne plus de temps que le Inner Join, c'est très possible |
|
00
|
Copyright © 2000-2012 - www.developpez.com