Problème update sur plusieurs tables
Bonjour,
J'ai un soucis sur un update conditionnel sous Oracle 9i.
Voilà mon soucis.
J'ai 2 tables. Table 1 et Table 2.
Des informations de Table 2 doivent venir mettre à jour des champs de Table 1 en fonction de conditions.
Les champs que je souhaite "manipuler" (c'est à dire devant être mis à jour ou servant de contrôle) sont les suivants :
Pour Table1 (qui en fait possède 21 colonnes) :
T1MTOC, T1FRAME, T1INVOICE, T1CUSTOMER
Pour Table2 (qui ne possède que les 4 colonnes suivantes) :
T2MTOC, T2FRAME, T2INVOICE, T2CUSTOMER
Ma problématique :
T1INVOICE et T1CUSTOMER doivent être mis à jour par les valeurs de T2INVOICE et T2CUSTOMER
à condition que :
T1MTOC = T2MTOC et T1FRAME = T2FRAME
J'ai essayé le code suivant (qui fonctionne pour un autre update) mais sans succès :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
| update TABLE1 B
SET T1INVOICE=
(select T2INVOICE from TABLE2 A where B.T1FRAME=A.T2FRAME AND A.T2MTOC=B.T1MTOC)
where exists (select 'oui' from TABLE2
where B.T1MTOC=A.T2MTOC
AND A.T2FRAME=B.T1FRAME);
update TABLE1 B
SET T1CUSTOMER=
(select T2CUSTOMER from TABLE2 A where B.T1FRAME=A.T2FRAME AND A.T2MTOC=B.T1MTOC)
where exists (select 'oui' from TABLE2
where B.T1MTOC=A.T2MTOC
AND A.T2FRAME=B.T1FRAME); |
En gros j'ai plusieurs problème avec cet update dont le fait qu'il me supprime des lignes dans TABLE1....
J'ai essayé dans tous les sens et je n'y arrive pas....
Peut être un regard extérieur réussira à me mettre sur la voie ?
Merci.
@+