SQL définir la variable en utilisant COUNT

J'essaie de faire une requête simple à mon serveur et je veux 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

31
demandé sur jao 2011-05-22 18:12:33

4 réponses

Vous avez juste besoin de parenthèses autour de votre select:

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

Ou vous pouvez le faire comme ceci:

SELECT @times = COUNT(DidWin) FROM ...
70
répondu Mike Valenty 2011-05-25 15:17:08

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 êtes partial à l'utilisation de 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');
8
répondu lambacck 2011-05-22 14:34:39

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'.

1
répondu James Wiseman 2011-05-22 14:15:30

Vous pouvez utiliser SELECT comme lambacck dit ou ajouter des parenthèses:

SET @times = (SELECT COUNT(DidWin)as "I Win"
FROM thetable
WHERE DidWin = 1 AND Playername='Me');
0
répondu a1ex07 2011-05-22 14:19:00