我是SQL的新手,以为我会写一条简单的语句来了解它的工作原理。我首先连接到包含名为LuPull
的表的数据库。我要做的就是从LuPull
中选择服务编号为A107118
的所有行,但是找不到表。
我已经更新了软件包,尝试了SQL语句的所有组合,使用了
sqlColumns(pers, "LuPull")$COLUMN_NAME
确实返回了所有列名,所以我知道它可以看到表,甚至使用Access来生成查询并复制并粘贴Access SQL代码,但是我得到的只是这个错误:
result_create(conn @ ptr,statement)中的错误:没有这样的表:LuPull
library(RODBC)
library(sqldf)
db <- "C:/Projects/MFData2005-2015.accdb"
pers <- odbcConnectAccess2007(db)
A107 <- sqldf("SELECT * FROM LuPull WHERE LuPull.[Service Number]='A107118'")
View(A107)
close(pers)
答案 0 :(得分:1)
使用Access数据库不需要sqldf。使用RODBC库中的sqlQuery
来选择数据。
library(RODBC)
db <- "C:/Projects/MFData2005-2015.accdb"
pers <- odbcConnectAccess2007(db)
A107 <- sqlQuery(pers,"SELECT * FROM LuPull WHERE LuPull.[Service Number]='A107118'")
View(A107)
close(pers)
答案 1 :(得分:0)
MS Access不使用单引号分隔字符串。它使用非标准的双引号。
也许将查询表述为有效的MS Access语法会有所帮助:
SELECT *
FROM LuPull
WHERE LuPull.[Service Number] = "A107118"