Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我不明白为什么我的SQL语句不能工作_Sql_R_Rodbc_Sqldf - Fatal编程技术网

我不明白为什么我的SQL语句不能工作

我不明白为什么我的SQL语句不能工作,sql,r,rodbc,sqldf,Sql,R,Rodbc,Sqldf,我是SQL新手,我想写一个简单的语句来看看它是如何工作的。我首先连接到一个数据库,其中包含一个名为LuPull的表。我所要做的就是从LuPull中选择所有行,其中服务号是a07118,但它找不到表 我已经更新了包,尝试了SQL语句的所有组合,使用了 sqlColumns(pers, "LuPull")$COLUMN_NAME 它确实返回了所有的列名,所以我知道它看到了表,我甚至使用Access生成查询并复制和粘贴Access SQL代码,但我得到的只是以下错误: 结果错误_createconn

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

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

sqlColumns(pers, "LuPull")$COLUMN_NAME
它确实返回了所有的列名,所以我知道它看到了表,我甚至使用Access生成查询并复制和粘贴Access SQL代码,但我得到的只是以下错误:

结果错误_createconn@ptr,声明:无此类表格:LuPull


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

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

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

使用Access数据库不需要sqldf。使用来自RODBC库的sqlQueryfrom来选择数据

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)

我不是一个“R”开发人员,但是的文档说它可以与SQLite、H2、PostgreSQL或MySQL一起使用。在第3行中,您引用的是MS Access 20007数据库。您确定sqldf可以与MS Access一起使用吗?也许可以帮助你。我删除了sqldf,只是将其作为一个独立的sql语句运行,这也不起作用。Gordon,我试过了,甚至添加了一个sqlFetch语句,但我得到了一条未知的令牌LuPull错误消息。@AngustEcat。LuPull是一个表名。这使得它不太可能是一个列名——不是不可能,但不太可能。除非数据量很大,否则您可以通过简单的select*from LuPull诊断它,而不使用过滤器
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)