Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Requête UPDATE avec cumul d'une valeur d'une autre table

1 réponse
Avatar
Island.ch
Bonjour,

J'ai un probl=E8me avec les requ=EAtes UPDATE. J'ai 2 tables : Client et
Commande et je souhaite mettre =E0 jour le champ MontantTotalCommande de
la table Client avec le cumul de tous les montants command=E9s par
client (cumul de la zone MontantCommande de la table Commande).

J'ai essay=E9 de faire une 1=E8re requ=EAte avec la table Commande pour
sommer le MontantCommande sur NumClient puis une 2=E8me requ=EAte qui lie
la 1=E8re requ=EAte et la table Client afin de mettre =E0 jour le champ
MontantTotalCommande. Cela ne marche pas, il me met le message
suivant : "L'op=E9ration doit utiliser une requ=EAte qui peut =EAtre mise =
=E0
jour". D'autre part, il a-t-il un moyen d'obtenir le r=E9sultat =E0 l'aide
d'une seule requ=EAte UPDATE (avec sous-requ=EAte) ?.

Merci beaucoup pour votre aide

1 réponse

Avatar
Gilbert
Bonjour,

Je ne peux que te déconseiller de faire ce genre de requête. En effet tu vas
stocker dans ta base une information en double, ce qui est contraire à tout
principe d'une base de données.
Rien ne t'empêche de retrouver le total des commandes en exécutant ta
requête (cumul de la zone MontantCommande de la table Commande) au moment où
tu en as besoin alors que ton champ MontantTotalCommande n'aura peut-être
pas été mis à jour pour une raison quelconque et contiendra donc une valeur
erronée.

--
Cordialement,

Gilbert


a écrit dans le message de news:

Bonjour,

J'ai un problème avec les requêtes UPDATE. J'ai 2 tables : Client et
Commande et je souhaite mettre à jour le champ MontantTotalCommande de
la table Client avec le cumul de tous les montants commandés par
client (cumul de la zone MontantCommande de la table Commande).

J'ai essayé de faire une 1ère requête avec la table Commande pour
sommer le MontantCommande sur NumClient puis une 2ème requête qui lie
la 1ère requête et la table Client afin de mettre à jour le champ
MontantTotalCommande. Cela ne marche pas, il me met le message
suivant : "L'opération doit utiliser une requête qui peut être mise à
jour". D'autre part, il a-t-il un moyen d'obtenir le résultat à l'aide
d'une seule requête UPDATE (avec sous-requête) ?.

Merci beaucoup pour votre aide