为什么在以下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'
我试图将我的Select语句返回的行数分配给变量@ Count90Day。
最佳答案
您需要在子查询周围加上括号:
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'
);
您也可以不使用
set
将其编写为: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';
关于sql - 从SQL中的Select语句分配INT变量,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18591523/