J'essaie de combiner la jointure intérieure et extérieure, mais je n'arrive pas à la faire fonctionner. J'ai un total de 7 tables qui doivent être réunies en une seule requête. D'abord je n'en avais que 6 et je n'avais aucun problème car tout était interne. Mais maintenant j'ai ajouté une septième table et je n'arrive pas à faire les choses correctement. Je pense que je dois utiliser OUTER JOIN en quelque sorte, mais je ne sais pas comment. Je n'utiliserai que 3 tables dans cet exemple parce que je pense pouvoir résoudre le reste si vous m'aidez à démarrer.joindre plusieurs tables avec intérieur et extérieur.
Liste de mes tableaux:
= Tableau 1 dbo.kala (Ceci est le 7ème tableau i ajouté
= Tableau2 dbo.ti
Table3 = dbo.ao
SELECT kala.kaldat
From dbo.kala
Where kala.kaldat Between '170407' AND '170410'
.
La requête ci-dessus renvoie le résultat suivant:
Result1
|kaldat |
|2017-04-07|
|2017-04-08|
|2017-04-09|
|2017-04-10|
.
SELECT ti.startdat, ti.artnr, ti.aonr, ti.aopos, ao.prodgr
From dbo.ti
INNER JOIN dbo.ao ON ti.aonr = ao.aonr AND ti.aopos = ao.aopos
Where ti.startdat Between '170407' AND '170410'
La requête ci-dessus renvoie le résultat suivant.
Result2
ti.startdat| ti.artnr| ti.aonr|ti.aopos|ao.prodgr|
2017-04-07 | 123 | 0001 |10 |50 |
2017-04-10 | 456 | 0002 |20 |60 |
Le résultat que je veux est ce (3).
Result3
kala.kaldat| ti.artnr| ti.aonr|ti.aopos|ao.prodgr|
2017-04-07 | 123 | 0001 |10 |50 |
2017-04-08 | | | | |
2017-04-09 | | | | |
2017-04-10 | 456 | 0002 |20 |60 |
La jonction entre dbo.kala et dbo.ti est sur kala.kaldat = ti.startdat.
J'espère que vous comprenez ce que j'essaie de faire ici. Sinon, je m'excuse d'avance et j'essaierai volontiers d'expliquer mieux. Merci d'avance!
* Notez que les 4 tables restantes qui ne sont pas dans cet exemple doivent être jointes (INNER?) Avec dbo.ti.
La jointure gauche est ce que vous recherchez, mais si vous avez des critères de clause where qui impliquent la table sur la "droite" de la jointure "Left", alors il doit être placé sur la jointure ou votre jointure gauche simule une jointure interne. – xQbert
vous essayez de sélectionner des données qui n'ont aucun index dans l'une des 3 tables, pour cela vous devez utiliser la jointure gauche ou la jointure externe complète en fonction de ce que vous voulez obtenir ---> voir https: //i.stack. imgur.com/66zgg.png –
J'ai effectivement plus de clauses where qui sont connectées à dbo.ti ... Tout ce dont j'ai besoin de dbo.kala est la liste des dates.Ensuite, je veux que le reste des tableaux remplisse simplement les informations sur la date correcte. – SisU