SQL DATEADD/WHERE语法
我的WHERE声明有点问题。我声明了一个名为@StartDate的变量,其数据类型为DATE,因为我不需要时间。我将根据过去30天、60天、90天等等的订单数量,多次更新临时表,但在单独的语句中进行更新SQL DATEADD/WHERE语法,sql,sql-server,tsql,temp-tables,Sql,Sql Server,Tsql,Temp Tables,我的WHERE声明有点问题。我声明了一个名为@StartDate的变量,其数据类型为DATE,因为我不需要时间。我将根据过去30天、60天、90天等等的订单数量,多次更新临时表,但在单独的语句中进行更新 UPDATE #TempTable SET Q30Day = Count(*) FROM #TempTable SET @StartDate = DATEADD(DAY, -30, CAST(GETDATE() as DATE)) WHERE PaidTime
UPDATE #TempTable SET Q30Day = Count(*)
FROM #TempTable
SET @StartDate = DATEADD(DAY, -30, CAST(GETDATE() as DATE))
WHERE PaidTime >= @StartDate
WHERE语句在抱怨,说“WHERE”附近的语法不正确,但我不确定原因。您只是把事情弄得一团糟,顺序不对:-
SET @StartDate = DATEADD(DAY, -30, CAST(GETDATE() as DATE))
UPDATE #TempTable SET Q30Day = Count(*)
FROM #TempTable
WHERE PaidTime >= @StartDate
查询中是否有2个
SET
子句?也许应该先完成第二部分,然后更新可以是一个有意义的查询。