我正在使用JavaDB并在同一个数据库中使用两个表。
我正在尝试使用Vehicle表的SellDate在指定日期之前的“Vehicles”表的“SellDate”列中的值更新“SalesResp”表中的PrevSales列。我通过使用两个表中存在的“VIN”列来匹配两个表之间的数据。
我的代码中的内部联接不断出现错误,SQL状态为42x01。
UPDATE SALESRESP JOIN VEHICLES ON (SALESRESP.VIN = VEHICLES.VIN)
SET SALESRESP.PrevSale = VEHICLES.SELLDATE WHERE
(((VEHICLES.SELLDATE)<'2013-09-24'));
我尝试了各种配置,交换INNER JOIN和SET展示位置,我尝试了包含“FROM”子句。似乎没什么用。有什么建议吗?
编辑:确切的错误代码:
Error code 30000, SQL state 42X01: Syntax error: Encountered "JOIN" at line 1, column 19.
答案 0 :(得分:1)
使用以下代码查看,替换日期而不是sysdate。
UPDATE SALESRESP
SET SALESRESP.PrevSale = (SELECT VEHICLES.SELLDATE FROM VEHICLES
WHERE SALESRESP.VIN = VEHICLES.VIN AND
VEHICLES.SELLDATE <'2013-09-24');
答案 1 :(得分:0)
UPDATE S SET S.PrevSale = V.SELLDATE FROM SALESRESP S
inner join VEHICLES V on S.VIN = V.VIN AND V.SELLDATE < '2013-09-24'
答案 2 :(得分:0)
好的,让我们试着更明确一点:
UPDATE SALESRESP
SET SALESRESP.PrevSale = VEHICLES.SELLDATE
FROM VEHICLES
JOIN SALESREP ON (SALESRESP.VIN = VEHICLES.VIN)
WHERE (((VEHICLES.SELLDATE)<'2013-09-24'))
看看是否有效。