Bonjour,

Je fût confronté a un problème que j'ai résolu mais qui m'a laissé perplexe.
En effet, la solution à laquelle je suis arrivée me semble tirée par les cheveux.

J'ai définit une table temporaire dans une varialbe.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
DECLARE @MaTABLE TABLE (...)
Après quelques opération, cette table est peuplée.
Et ensuite je dois faire des mise à jour dans cette table en me servant de cette même table pour calcul.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
UPDATE TOP(1) @MaTABLE 
SET ... = (
	SELECT SUM(T2.Nb + @MaTABLE.Nb)
	FROM @MaTABLE AS T2
	WHERE ...
	GROUP BY ...
)
Cette exemple est fitctif et ne représente en rien la complexité d'un context qui justifie mon interrogation

Comme vous pouvez le voir en rouge, il y a un problème de syntax pour faire référence à la colonne Nb de la ligne @MaTABLE en cours de mise à jour.

J'ai résolu ce problème en faisant ceci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
 
UPDATE TOP(1) @MaTABLE 
SET ... = (
	SELECT SUM(T2.Nb2 + Nb)
	FROM (
		SELECT Nb AS Nb2
		FROM @MaTABLE
 
	) AS T2
	WHERE ...
	GROUP BY ...
)
Donc j'aimerais savoir s'il existe une syntax que j'ignore et me permettant de faire référence à @MaTABLE.Nb ?

Merci.