我们目前正在从基于访问的销售数据数据库转移到基于SQL Server 11的数据库。目前,我们使用VBA从两个源导入数据库,但正在转向使用Python。这两个来源使用不同的帐户代码并解决此问题,我们使用客户表将二级客户代码(DGS代码)映射到客户代码,该客户表具有客户记录中指定的两个不同代码。此SQL语句用于使用VBA在Access中使用所需的主要客户代码更新销售数据。
UPDATE SalesData
INNER JOIN Customers ON SalesData.DGSCode = Customers.DGSCode
SET SalesData.AccCode = [Customers].[CustomerCode]
WHERE (((SalesData.AccCode) Is Null))
但是当在Python中与SQL服务器一起使用时,它会返回错误:
Msg 156,Level 15,State 1,Line 2
关键字“INNER”附近的语法不正确。
感谢您解决此问题的任何帮助。感谢。
答案 0 :(得分:8)
您正在执行MySQL
的语法。这是SQL Server
UPDATE SalesData
SET SalesData.AccCode = Customers.CustomerCode
FROM SalesData
INNER JOIN Customers
ON SalesData.DGSCode = Customers.DGSCode
WHERE SalesData.AccCode Is Null