Bonjour,

je possède une table T1(idT1(pk),champ2T1,champ3T1)
Voici un exemple de son contenu
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
1, 0, 0
2, 564, 24
3, 0, 0
et une table T2(idT2(pk),champ2T2,champ3T2,champ4T2)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
1, , , ,
2, , , ,
3, , , ,

Les champs idT2 et idT1 sont identiques.
Les champs "champ2T2" et "champ3T2" et "champ4T2" de la table T2 sont vides.

L'idée serait de remplir ces champs en fonction des valeurs de champ2T1 et champ3T1 (donc de la table T1). Je voudrais obtenir quelque chose dans le style "si champ2T1+champ3T1 de T1 = 0, alors on écrit 'bonjour' dans "champ2T2" de T2". Soit ceci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
1, 'bonjour', , ,
2, , ,
3, 'bonjour', , ,


Pour celà il faut très certainement effectuer une jointure entre la table T2 et T1, mais je ne vois pas comment faire ici.
Voyez ce que je souhaiterai faire :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
 
UPDATE T2
SET champ2T2=
CASE
WHEN T1.champ2T1+T1.champ3T1=0 INNER JOIN T2 ON T1.idT1=T2.idT2
THEN 'bonjour'
.
.
. etc..
END;

Bien entendu je pourrais très bien copier les champ2T1 et champ3T1 de ma table T1 dans la table T2, et effectuer directement les traitements vu que toutes les valeurs seraient maintenant dans T2, mais je ne pense pas que ça soit très propre (la table T1 contient plusieurs millions d'enregistrements, je me retrouverai avec autant de données dans T2, ce qui serait certainement lourd )..
Merci beaucoup

EDIT : Je viens de tester cette méthode, mais j'obtiens "erreur à la ligne 1, ORA-01722: invalid number"
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
INSERT INTO T2(champ2T2,champ3T2)
SELECT (CASE WHEN champ2T1+champ3T1=0 THEN 'Bonjour' END)as champ_calculé,
champ3T1
FROM T1;
Donc ici ça devrait me calculer champ2T1+champ3T1 et me mettre le résultat ('bonjour') dans un champ_calculé (donc le champ2T2 de T2), puis me mettre le champ3T1 de T1 tel quel dans le champ3T2 de T2.

Mais rien n'y fait
Merci à vous