这个SQL查询有什么不对?

时间:2018-05-09 19:56:09

标签: sql-server join updates

update v, s
set v.closed = 'Y' 
where v.closed <> 'y' 
  and v.canceldate < '12.01.2017'  
  and s.salesrep1 = 'bd' 
  and v.orderno = s.orderno

这是我的查询,我收到此错误:

  

Msg 102,Level 15,State 1,Line 1
  ','。

附近的语法不正确

2 个答案:

答案 0 :(得分:1)

问题很可能是你混淆了你使用的rdbms产品。错误消息来自MS SQL Server,而问题是(好吧,被标记为mysql。

问题中使用的语法在mysql中是允许的,但在MS Sql Server中是不允许的,因此是错误消息。

在MS Sql Server中,尝试以下语法:

update v set v.closed = 'Y' 
from v inner join s 
on v.orderno = s.orderno
    where v.closed <> 'y' 
        and v.canceldate < '12.01.2017'  
        and s.salesrep1 = 'bd' 

有关详细信息,请参阅update statement上的ms sql server参考

答案 1 :(得分:1)

我会这样(在sql server上)

update v
set v.closed = 'Y' 
From v inner join s 
On v.orderno = s.orderno
    Where v.closed <> 'y' 
    and v.canceldate < '12.01.2017'  
    and s.salesrep1 = 'bd'