我不明白为什么我的 SQL 语句不起作用

I can't figure out why my SQL statement doesn't work

我是 SQL 的新手,我想写一个简单的语句看看它是如何工作的。我首先连接到一个数据库,其中包含一个名为 LuPull 的 table。我想要做的就是 select 来自 LuPull 的所有行,其中服务编号为 A107118,但找不到 table.

我已经更新了软件包,尝试了 SQL 语句的所有组合,使用了

sqlColumns(pers, "LuPull")$COLUMN_NAME

它 return 所有列名,所以我知道它看到了 table,我什至使用 Access 生成查询并复制并粘贴了 Access SQL 代码,但我得到的只是这个错误:

Error in result_create(conn@ptr, statement) : no such table: 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)

MS Access 不使用单引号来分隔字符串;它使用非标准双引号。

也许将查询表述为有效的 MS Access 语法会有所帮助:

SELECT *
FROM LuPull
WHERE LuPull.[Service Number] = "A107118"

使用 Access 数据库不需要 sqldf。使用 sqlQuery 从 RODBC 库到 select 数据。

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)

RODBC Docs