Disons que j'ai 2 tables avec la même structure: STOCK
et NEW_STOCK
. Ces tables ont une clé primaire composée de (ID_DATE, ID_SELLER, ID_INVOICE, ID_DOC).Comment joindre les résultats de deux tables dans Oracle 10
Maintenant, je dois obtenir pour tous (ID_DATE, ID_SELLER, ID_INVOICE, ID_DOC), la valeur du montant (champ MONTANT) en ce qui concerne cette exigence:
Si un enregistrement est présent dans NEW_STOCK
, je reçois le MONTANT de NEW_STOCK
, sinon, je reçois le MONTANT du tableau STOCK
.
Notez que ID_DATE et ID_SELLER sont les entrées données à la requête, à savoir une requête qui ne tient compte que STOCK
tableau ressemblera:
select AMOUNT, ID_DATE, ID_SELLER, ID_INVOICE
from STOCK
where ID_DATE = 1
and ID_SELLER = 'SELL1';
STOCK
:
+---------+-----------+------------+--------+--------+
| ID_DATE | ID_SELLER | ID_INVOICE | ID_DOC | AMOUNT |
+---------+-----------+------------+--------+--------+
| 1 | SELL1 | IN1 | DOC1 | 100 |
| 1 | SELL1 | IN2 | DOC2 | 50 |
| 1 | SELL1 | IN3 | DOC3 | 42 |
+---------+-----------+------------+--------+--------+
NEW_STOCK
:
+---------+-----------+------------+--------+--------+
| ID_DATE | ID_SELLER | ID_INVOICE | ID_DOC | AMOUNT |
+---------+-----------+------------+--------+--------+
| 1 | SELL1 | IN2 | DOC2 | 12 |
+---------+-----------+------------+--------+--------+
Ensuite, je dois obtenir le suivant les résultats de l'aile:
+---------+-----------+------------+--------+--------+
| ID_DATE | ID_SELLER | ID_INVOICE | ID_DOC | AMOUNT |
+---------+-----------+------------+--------+--------+
| 1 | SELL1 | IN1 | DOC1 | 100 |
| 1 | SELL2 | IN2 | DOC2 | 12 |
| 1 | SELL3 | IN3 | DOC3 | 42 |
+---------+-----------+------------+--------+--------+
ps: je travaille sur Oracle 10.
Merci, ce fut ce que j'ai essayé, sauf que j'ai ajouté « n.ID_DATE = 1 et n.ID_SELLER = « SELL1 » » dans la partie où, qui ne travaillait pour les dossiers uniquement présents dans le tableau STOCK. Par ailleurs, comment écrire une "jointure externe gauche" quand il y a plus d'un champ utilisé pour la jointure? – romaintaz
Non, c'est correct pour la "jointure externe gauche". Merci. – romaintaz