SQL 微软访问 2013

SQL MS Access 2013

我有以下 SQL 声明:

UPDATE tbl_Invoices
SET tbl_Invoices.Base = tbl_Bases.BasePrice
FROM tbl_Invoices
INNER JOIN tbl_Bases ON tbl_Bases.ProductNumber  =  tbl_Invoices.ProductNumber
                     AND tbl_Bases.ChangeOrderID = tbl_Invoices.ChangeOrderID
                     AND tbl_Bases.CustomerName = 'VALEO' 
                     AND tbl_Bases.CountryCode = 'FR'
                     AND tbl_Bases.ContractYear = 0

Access 一直告诉我语法错误(缺少运算符)

这让我抓狂。谁能告诉我怎么了?

UPDATE ... FROM 在 Access SQL 中不存在,这里你这样做:

UPDATE tbl_Invoices
INNER JOIN tbl_Bases ON tbl_Bases.ProductNumber  =  tbl_Invoices.ProductNumber
                     AND tbl_Bases.ChangeOrderID = tbl_Invoices.ChangeOrderID
                     AND tbl_Bases.CustomerName = 'VALEO' 
                     AND tbl_Bases.CountryCode = 'FR'
                     AND tbl_Bases.ContractYear = 0
SET tbl_Invoices.Base = tbl_Bases.BasePrice

非常感谢。 我仍然有一个错误,因为 = 'VALEO' 等...在 Join 中是不允许的,但是如果移动到 where 子句,这是有效的:

UPDATE tbl_Invoices
INNER JOIN tbl_Bases ON tbl_Bases.ProductNumber  =  tbl_Invoices.ProductNumber
                     AND tbl_Bases.ChangeOrderID = tbl_Invoices.ChangeOrderID
SET tbl_Invoices.Base = tbl_Bases.BasePrice
WHERE tbl_Bases.CustomerName = 'VALEO' 
                     AND tbl_Bases.CountryCode = 'FR'
                     AND tbl_Bases.ContractYear = 0