在SQL中从Select语句分配INT变量

Bil*_*eer 6 sql t-sql database

为什么我在以下SQL语句上遇到语法错误:

DECLARE @Count90Day int;

SET @Count90Day =  SELECT COUNT(*) FROM Employee WHERE DateAdd(day,30,StartDate) BETWEEN
DATEADD(day,-10,GETDATE()) AND DATEADD(day,10,GETDATE())  AND Active ='Y' 
Run Code Online (Sandbox Code Playgroud)

我试图将从Select语句返回的行数分配给变量@ Count90Day.

Gor*_*off 17

子查询周围需要括号:

DECLARE @Count90Day int;

SET @Count90Day =  (SELECT COUNT(*)
                    FROM Employee
                    WHERE DateAdd(day,30,StartDate) BETWEEN DATEADD(day,-10,GETDATE()) AND 
                                                            DATEADD(day,10,GETDATE())  AND
                          Active ='Y'
                   );
Run Code Online (Sandbox Code Playgroud)

你也可以在没有setas的情况下写这个:

DECLARE @Count90Day int;

SELECT @Count90Day =  COUNT(*)
FROM Employee
WHERE DateAdd(day,30,StartDate) BETWEEN DATEADD(day,-10,GETDATE()) AND DATEADD(day,10,GETDATE()) AND
      Active ='Y';
Run Code Online (Sandbox Code Playgroud)