T-SQL de mise à Jour avec la SOMME et le Groupe EN
Je veux mettre à jour avec la valeur de cette requête, mais il me dit que ça revient plus d'une valeur.
UPDATE PO_HEADER
SET TOTAL = (SELECT SUM(LINE_TOTAL) AS "NEW_LINE_TOTAL"
FROM PO_LINE pl, PO_HEADER ph
where ph.IC_PO_HEADER = pl.IC_PO_HEADER
and ph.RELEASE_NUMBER = pl.RELEASE_NUMBER
group by pl.IC_PO_HEADER,pl.FOREIGN_KEY,ph.RELEASE_NUMBER,
ph.REVISION_NUMBER,ph.PO_NUMBER)
from PO_HEADER ph, PO_LINE pl
where ph.IC_PO_HEADER = pl.IC_PO_HEADER;
Msg 512, Niveau 16, État 1, Ligne 1
La sous-requête a retourné plus de valeur 1. Ce n'est pas permis lorsque la sous-requête suit =, !=, <, <= , >, >= ou lorsque la sous-requête est utilisée comme une expression.
Comment est-il revenir plus d'une colonne?
Ce n'est pas le retour de plus de 1 colonne, c'est le retour de plus d'une ligne,
OriginalL'auteur user1435281 | 2012-08-10
Vous devez vous connecter pour publier un commentaire.
Si cette requête renvoie les informations que vous souhaitez:
Alors c'est probablement la requête de mise à JOUR que vous souhaitez:
Je suis d'accord avec Gordon, votre regroupement semble très étrange. Je ne suis pas sûr si j'ai bien compris (c'est pourquoi je vous recommande fortement d'exécuter le SÉLECTIONNER en premier).
Je ne peux pas le débogage de votre requête si je ne le vois pas, désolé.
Merci de prendre avis. L'erreur se produit lors de l'exécution de votre instruction de mise à jour (après l'exécution de la "create table" les déclarations ci-dessus).
essayez-le maintenant s'il vous plaît.
parce que vous êtes des commentaires sur un post que j'ai rédigé (si je reçois une notification sans avoir à m'en informer explicitement).
OriginalL'auteur Aaron Bertrand
Il est de retour plus d'une colonne, car la sous-requête select est de retourner plusieurs lignes.
Peut-être vous dire quelque chose comme ceci:
Je suis toujours méfiant de cela, cependant, parce que vous êtes un regroupement en 5 champs dans la sous-requête, mais seulement de le rejoindre sur l'un d'eux. Je m'attends à ce "toupdate" pour être le regroupement uniquement sur ic_po_header dans cette situation.
OriginalL'auteur Gordon Linoff