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.
Après quelques opération, cette table est peuplée.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 DECLARE @MaTABLE TABLE (...)
Et ensuite je dois faire des mise à jour dans cette table en me servant de cette même table pour calcul.
Cette exemple est fitctif et ne représente en rien la complexité d'un context qui justifie mon interrogation
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 ... )
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 :
Donc j'aimerais savoir s'il existe une syntax que j'ignore et me permettant de faire référence à @MaTABLE.Nb ?
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 ... )
Merci.
Partager