簡體   English   中英

RODBC-誰能告訴我為什么這不起作用?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM