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 :
En gros j'ai plusieurs problème avec cet update dont le fait qu'il me supprime des lignes dans TABLE1....
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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);
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.
@+
Partager