![](/img/trans.png)
[英]Can anyone tell me why my table field reference not work with this trigger query?
[英]RODBC-Can anyone tell me why this doesn't work?
我的数据库中有两个表,名为“COL”和“Duplicates”。 如果两个表中“generic”字段中的值匹配,我希望将 COL 中“item_price”字段中的值更改为 Duplicates 中“avg_price”字段中的值。 我的代码是:
library(RODBC)
db <- "C:/Projects/Online.accdb"
col <- odbcConnectAccess2007(db)
sql=paste0("update COL set COL.item_price=Duplicates.avg_price where COL.generic=Duplicates.generic")
result <- sqlQuery(col,sql)
close(col)
但我得到了错误
[1]“07002 -3010 [Microsoft][ODBC Microsoft Access 驱动程序] 参数太少。预期为 2。”
[2] “[RODBC] 错误:无法 SQLExecDirect 'update COL set COL.item_price=Duplicates.avg_price where COL.generic=Duplicates.generic'”
我认为这很简单,但我知道我错了。
目前,您的 SQL 查询永远不会在Duplicates表中作为来源。 因此,引擎不知道别名的含义。 只需针对UPDATE ... JOIN
查询进行调整,其中WHERE
子句变为JOIN
子句:
UPDATE COL c
INNER JOIN Duplicates d ON c.generic = d.generic
SET c.item_price = d.avg_price;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.