Bonjour,
Je souhaite faire une requete qui permet de mettre à jour tout les prix à 0 (de la table commande) en multipliant le prix production par le prix unitaire (de la table article). Pour chaque commande, il faudra mettre à jour les prix totaux = 0 par la somme du prix de production par le prix unitaire des articles de la commande correspondante.
En sachant qu'une commande possède plusieurs articles.
J'ai pensé à faire une requête mais mes deux essais se sont averés non concluant...
Le résultat de ma requete : missing SET keyword
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 UPDATE commande cmd inner join article art on art.cmd_id = cmd.cmd_id SET cmd.cmd_prix_total = (art.prix_prod * art.prix_unitaire) WHERE cmd.cmd_prix_total = 0
J'ai pensé aussi à faire une requête imbriqué :
Résultat de la requete : single-row subquery returns more than one row
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 UPDATE commande cmd SET cmd.cmd_prix_total = (SELECT SUM(art.prix_prod * art.prix_unitaire) AS Invoice_price FROM commande cmd2 inner join article art on art.cmd_id = cmd2.cmd_id WHERE cmd2.cmd_prix_total = 0 GROUP BY cmd2.cmd_numero) WHERE cmd.cmd_prix_total = 0
Le problème de cette dernière requête est que la requête imbriqué renvoie plusieurs valeurs.
La version Oracle est : 10g - 10.2.0.4.0
Quels sont les erreurs que j'ai pu commettre pour avoir pour chaque commande, le prix total de la commande pour chaque articles ?
Je vous remercie d'avance pour toute aide qui pourra m'être apporté
Partager