Mettre à jour une table avec les données d'une autre table
Bonjour,
je voudrais en une seule requête mettre à jour des quantités article dans la table article à partir des quantités relevées dans la table inventaire_article.
Sur Wikipedia, j'ai trouvé ça ;
Citation:
Mise à jour d'une table à partir des informations d'une autre table : UPDATE TABLE1 SET ( champ3, champ4 ) = ( SELECT val32, val13 FROM TABLE2 WHERE TABLE1.CHAMP1 = TABLE2.CHAMP2 ) WHERE ( CHAMP1 ) IN ( SELECT CHAMP2 FROM TABLE2)
Dans moncontexte, ça donne ça :
Code:
1 2 3 4 5 6
|
UPDATE article SET (stock_physique) =
( SELECT quantite_article FROM inventaire_article where article.code_article = inventaire_article.code_article)
WHERE
( article.code_article) IN ( SELECT code_article FROM inventaire_article
where inventaire_article.code_inventaire = 262) |
Ça ne marche pas, à cause des parenthèses dans "SET (stock_physique)" et si je les enlève, ma sous-requête renvoyant plusieurs tuples, ça me retourne "multiple rows in singleton select"
Je pensais que le problème était simple.
Il me reste la solution de traiter ça de manière algorithmique dans Delphi, avec un Update paramétré par enregistrement de la table inventaire. Mais j'aurais bien aimé faire ça en une seule requête.
Merci de m'avoir lu.