Bonjour,

J'ai un problème de conception sur une requête:

Admettons que je possède deux tables constituées des champs ci-dessous:

table A = INDICE, VAL1, VAL2, VAL3, MONTANT
table B = VAL1, VAL2, VAL3, MONTANT_TOTAL

Je souhaite mettre à jour la valeur de B.MONTANT_TOTAL par B.MONTANT_TOTAL - A.MONTANT,
en sachant que pour lier mes deux tables, j'ai les champs VAL1, VAL2 et VAL3.

Si je fais un select, j'obtiens bien le résultat attendu:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
select B.MONTANT_TOTAL, A.MONTANT, B.MONTANT_TOTAL - A.MONTANT as NOUV_MONTANT from A, B
where A.VAL1 = B.VAL1
  and A.VAL2 = B.VAL2
  and A.VAL3 = B.VAL3
  and A.INDICE = 7040907;
Qui me donne:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
MONTANT_TOTAL   MONTANT   NOUV_MONTANT
30              5         25 
25              6         19
20              3         17
Mais pour faire la même chose directement via un update, je n'y arrive pas, j'obtiens toujours des erreurs...

Avez-vous une idée ?

Merci d'avance,

MagicThot42