Mise à jour basé sur, sélectionnez à la même table, encore et ENCORE
Dans Microsoft SQL Server:
J'ai vu cette question plusieurs fois, mais ne peut pas voir quelqu'un pour résoudre le problème:
UPDATE theTable t1
SET t1.col2 =
(SELECT (10 * (col1 + col2))
FROM theTable t2
WHERE t1.busRelAccount = t2.busRelAccount
AND t2.rowName = 'POS'
)
WHERE t1.busRelAccount = t2.busRelAccount
AND t1.rowName = 'INVENTORY'
;
Toute personne ayant résolu ce problème sans l'aide du CURSEUR et de la boucle de la table?
Bienvenue sur StackOverflow: si vous publiez du code XML ou des échantillons de données, veuillez mettre en évidence les lignes dans l'éditeur de texte et cliquez sur le "code d'échantillons" (
{ }
) sur la barre d'outils editeur de bien le format et la surbrillance de la syntaxe!OriginalL'auteur Blue high Mountain | 2012-06-13
Vous devez vous connecter pour publier un commentaire.
Pas 100% sûr de ce que vous essayez de le faire - mais plus probablement, vous pouvez écrire votre
UPDATE
déclaration beaucoup plus simple - quelque chose comme ceci:Fondamentalement, vous devez définir une JOINTURE entre les deux tables (les deux étant à la même table, vraiment) et vous pouvez alors définir comment mettre à jour la colonne de
t1
basés sur des colonnes det2
OriginalL'auteur marc_s