69 votes

sql définir la variable à l'aide de COUNT

J'essaie de faire une requête simple à mon serveur et je souhaite que le résultat soit stocké dans la variable @times.

 DECLARE @times int

SET @times = SELECT COUNT(DidWin)as "I Win"
FROM thetable
WHERE DidWin = 1 AND Playername='Me'

IntelliSense dit Wrong syntax near Select

130voto

Michael Valenty Points 5482

Vous avez juste besoin de parenthèses autour de votre sélection :

 SET @times = (SELECT COUNT(DidWin) FROM ...)

Ou tu peux le faire comme ceci :

 SELECT @times = COUNT(DidWin) FROM ...

13voto

lambacck Points 4955

Vous pouvez sélectionner directement dans la variable plutôt que d'utiliser set :

 DECLARE @times int

SELECT @times = COUNT(DidWin)
FROM thetable
WHERE DidWin = 1 AND Playername='Me'

Si vous devez définir plusieurs variables, vous pouvez le faire à partir de la même sélection (exemple un peu artificiel):

 DECLARE @wins int, @losses int

SELECT @wins = SUM(DidWin), @losses = SUM(DidLose)
FROM thetable
WHERE Playername='Me'

Si vous préférez utiliser set, vous pouvez utiliser des parenthèses :

 DECLARE @wins int, @losses int

SET (@wins, @losses) = (SELECT SUM(DidWin), SUM(DidLose)
FROM thetable
WHERE Playername='Me');

2voto

James Wiseman Points 18347

Vous voulez:

 DECLARE @times int

SELECT @times =  COUNT(DidWin)
FROM thetable
WHERE DidWin = 1 AND Playername='Me'

Vous n'avez pas non plus besoin de la clause 'as'.

0voto

a1ex07 Points 23965

Vous pouvez utiliser SELECT comme l' a dit lambacck ou ajoutez des parenthèses :

 SET @times = (SELECT COUNT(DidWin)as "I Win"
FROM thetable
WHERE DidWin = 1 AND Playername='Me');

-2voto

Vasil Valchev Points 347

Si vous devez imprimer le résultat avec le nom de colonne "c", ou lire le résultat dans votre code en utilisant le nom de colonne "c":

 DECLARE @c int;
SELECT c = count(*) from '%Table%' WHERE '%condition%'

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X