Sql can';t使用';其中';部分

Sql can';t使用';其中';部分,sql,sql-server-2008,Sql,Sql Server 2008,仅当表中的字段距离上次更新已有一个月时,我才尝试更新该字段 我试过: update studentClasses set lastCharge = getDate(), classBalance = classBalance - Price WHERE DATEDIFF(MONTH, classBalance.lastCharge , GETDATE()) = 1 AND classBalance.endDate < GETDATE() updatestudentclasses set

仅当表中的字段距离上次更新已有一个月时,我才尝试更新该字段

我试过:

update studentClasses set lastCharge = getDate(), classBalance = classBalance - Price
WHERE DATEDIFF(MONTH, classBalance.lastCharge , GETDATE()) = 1
AND classBalance.endDate < GETDATE()
updatestudentclasses set lastCharge=getDate(),classBalance=classBalance-Price
其中DATEDIFF(月,classBalance.lastCharge,GETDATE())=1
和classBalance.endDate
不起作用..:(

有人知道我怎么做吗

提前谢谢


(我使用的是sql server 2008 express)

您将
classBalance
引用为
studentClasses
表中的表和列。 也许可以试试:

update studentClasses set lastCharge = getDate(), classBalance = classBalance - Price
WHERE DATEDIFF(MONTH, lastCharge , GETDATE()) = 1
AND endDate < GETDATE()
updatestudentclasses set lastCharge=getDate(),classBalance=classBalance-Price
其中DATEDIFF(月、上次费用、GETDATE())=1
和endDate
(假设
endDate
Price
studentClasses
中,并且
classBalance
是一列,而不是一个表)

我认为
DATEDIFF(月,
没有达到你的预期。阅读手册。(它计算月边界数)。使用DATEDIFF(天…)30或更好的
endDate=DATEADD(月-1,GETDATE())