不支持声明 SQL 构造或语句



使用显示的查询时,我收到错误。

不支持声明 SQL 构造或语句。

帮助我找到一个合适的解决方案。

DECLARE @maxcount1 float 
DECLARE @maxcount0 float 
DECLARE @start datetime 
SET @start = getdate() - 2 
DECLARE @end datetime 
SET @end= getdate() + 2
SELECT @maxcount1 = max(OnTimeCount),@maxcount0 = max(DueTimeCount)
FROM  (SELECT DISTINCT COUNT(DISTINCT CASE WHEN ontime = 1 THEN sl_no  END)  AS OnTimeCount,  COUNT(DISTINCT CASE WHEN ontime = 0 THEN  sl_no END) AS DueTimeCount FROM tbl_splited_details 
WHERE (uploaded_date  BETWEEN  @start  AND @end) GROUP BY Site_ID) AS s
SELECT  DISTINCT Site_ID, OnTimeCount, DueTimeCount, 
round((cast((OnTimeCount*100) AS float)/@maxcount1), 2)AS percentage1 , round((cast((DueTimeCount *100)AS float)/@maxcount1),  2) AS percentage0
FROM (SELECT DISTINCT  Site_ID, COUNT(DISTINCT CASE  WHEN ontime  =   1  THEN  sl_no  END)  AS OnTimeCount, 
COUNT(DISTINCT CASE WHEN ontime  =  0 THEN sl_no END) AS  DueTimeCount  
FROM  tbl_splited_details  WHERE (uploaded_date BETWEEN  @start  AND    @end)   GROUP BY    Site_ID) AS s                                    

据我所知,你使用以下语法:

DECLARE @start datetime = getdate() - 2 

此 DECLARE 语法仅在 SQL Server 2008 及更高版本中受支持。在使用 SQL Server 2005 的情况下,必须使用较旧的语法:

DECLARE @start datetime
SET @start = getdate() - 2

最新更新