|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Invité régulier
![]() tom Étudiant Inscription : janvier 2012 Messages : 13 ![]() |
Bonjour,
Je me presente je m'appelle thomas et je suis etudiant en informatique. Pour un projet je dois effectuer des manipulations dans une base de données. Je dois mettre à jour toute un colonne avec les valeur qui corresponde à une somme d'une autre table je met le code pour etre plus explicite Code :
La sous-requête a retourné plusieurs valeurs. Cela n'est pas autorisé quand la sous-requête suit =, !=, <, <= , >, >= ou quand elle est utilisée en tant qu'expression. L'instruction a été arrêtée. Est-ce que quelqu'un aurait une idée de où ça peut bien venir svp? |
||
|
|
00
|
|
|
#2 |
|
Membre éclairé
![]() |
Bonjour,
Ce résultat à plusieurs valeurs vient de la clause "GROUP BY". La sous-requête retourne la liste des sommes pour chaque "idcmd". Modifie ta sous-requête de sorte qu'elle ne retourne que la somme correspondant à l'idcmd de la requête UPDATE (ajoute un WHERE dans la requête UPDATE)
__________________
Les boutons et adorent être cliqués, donc ne les oubliez pas
|
|
|
00
|
|
|
#3 | |
|
Invité régulier
![]() tom Étudiant Inscription : janvier 2012 Messages : 13 ![]() |
C'est ce que je viens de faire, mais le problème il me dit que ce n'est pas lié, alors j'ai mis un FROM mais la il me renvois la même erreur.
Le lien dans le where ça peut etre quoi? Citation:
|
|
|
|
00
|
|
|
#4 |
![]() ![]() |
Il ne faut pas remettre la table HistoCommande dans la sous-requête, sinon vous ne faites pas la corrélation entre la mise à jour et la sous-requête.
__________________
Email : http://scr.im/waldar |
|
10
|
|
|
#5 |
|
Invité régulier
![]() tom Étudiant Inscription : janvier 2012 Messages : 13 ![]() |
Si je ne met pas le lien dans le WHERE de la sous requête il ne saura pas où aller?
|
|
|
00
|
|
|
#6 |
![]() ![]() |
Je n'ai pas parlé du lien dans le WHERE, j'ai parlé de la table.
Il faut conserver le lien, qui fera la corrélation entre la table mise à jour HistoCommande et la sous-requête. Si c'est plus clair avec des images, actuellement votre requête fonctionne ainsi comme dans l'image Update_1. Votre sous-requête est indépendante de la mise à jour, et renvoie les résultats pour tous les idcmd, ce qui provoque l'erreur. En supprimant la référence à HistoCommande dans la sous-requête, mais en gardant l'égalité, la sous-requête devient corrélée à la table mise à jour, cf. l'image Update_2, et ne travaille que sur l'idcmd courant. À ce titre, le GROUP BY de la sous-requête devient inutile.
__________________
Email : http://scr.im/waldar |
|
10
|
|
|
#7 |
|
Invité régulier
![]() tom Étudiant Inscription : janvier 2012 Messages : 13 ![]() |
Oula, je me suis embrouillé pardon et oui effectivement ça à fonctionné.
Merci,toutes mes valeurs sont maintenant à jours!!! merci beaucoup |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com