T-SQL de mise à JOUR à l'aide de l'auto rejoindre pour une variable de table
Imaginer qu'il y est un tableau:
declare @tab table (id int, val int)
insert into @tab(id, val)
values (1,10),(2,20),(1,15)
il est nécessaire de mettre à jour la table et de définir pour chaque id de la somme de toutes les valeurs avec la même id dans la table
update @tab
set val = (select sum(val) from @tab tab where tab.id = id)
La clause where de la dernière requête est toujours vrai et donc chaque ligne doit contenir la somme de toutes les valeurs dans le tableau.
Si la table était réel (pas de variable de table), je voudrais faire référence en utilisant le nom de la table:
update realtab
set val = (select sum(val) from @tab tab where tab.id = realtab.id)
Il est possible de faire une mise à jour pour les variables de table?
"Temporelle" signifie "dans le temps"; je pense que vous voulez dire "temporaire", mais en disant "variable de table" implique que, de toute façon. J'ai édité.
bien sûr, il est variable temporaire
bien sûr, il est variable temporaire
OriginalL'auteur Timofey | 2011-04-19
Vous devez vous connecter pour publier un commentaire.
Essayez d'utiliser la mise à JOUR ... à PARTIR de
OriginalL'auteur Lukasz Lysik
Vous pouvez également utiliser un
CTE
:OriginalL'auteur Quassnoi