RODBC-谁能告诉我为什么这不起作用?
RODBC-Can anyone tell me why this doesn't work?
我的数据库中有两个表,分别是 "COL" 和 "Duplicates"。如果字段 "generic" 中的值在两个表中都匹配,我想将 COL 中字段 "item_price" 中的值更改为重复项中字段 "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 Driver] Too few
parameters. Expected 2."
[2] "[RODBC] ERROR: Could not SQLExecDirect 'update COL set
COL.item_price=Duplicates.avg_price where
COL.generic=Duplicates.generic'"
我认为这很简单,但我知道我错了。
目前,您的 SQL 查询从未在 Duplicates table 中找到来源。因此,引擎不知道别名的含义。只需调整 UPDATE ... JOIN
查询,其中 WHERE
子句变为 JOIN
子句:
UPDATE COL c
INNER JOIN Duplicates d ON c.generic = d.generic
SET c.item_price = d.avg_price;
我的数据库中有两个表,分别是 "COL" 和 "Duplicates"。如果字段 "generic" 中的值在两个表中都匹配,我想将 COL 中字段 "item_price" 中的值更改为重复项中字段 "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 Driver] Too few parameters. Expected 2."
[2] "[RODBC] ERROR: Could not SQLExecDirect 'update COL set COL.item_price=Duplicates.avg_price where COL.generic=Duplicates.generic'"
我认为这很简单,但我知道我错了。
目前,您的 SQL 查询从未在 Duplicates table 中找到来源。因此,引擎不知道别名的含义。只需调整 UPDATE ... JOIN
查询,其中 WHERE
子句变为 JOIN
子句:
UPDATE COL c
INNER JOIN Duplicates d ON c.generic = d.generic
SET c.item_price = d.avg_price;