Я не могу понять, почему мой оператор SQL не работает - PullRequest
0 голосов
/ 26 января 2019

Я новичок в SQL и подумал, что напишу простое утверждение, чтобы увидеть, как оно работает.Сначала я подключаюсь к базе данных, которая содержит таблицу с именем LuPull.Все, что я пытаюсь сделать, это выбрать все строки из LuPull, где Service Number = A107118, но не может найти таблицу.

Я обновил пакеты, перепробовал все комбинацииоператора SQL, используется

sqlColumns(pers, "LuPull")$COLUMN_NAME

, который возвращает все имена столбцов, так что я знаю, что он видит таблицу, и я даже использовал Access для генерации запроса и скопировал и вставил код SQL доступа, новсе, что я получаю, является этой ошибкой:

Ошибка в result_create (conn @ ptr, оператор): нет такой таблицы: 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)

Ответы [ 2 ]

0 голосов
/ 27 января 2019

Вам не нужен sqldf для работы с базой данных Access. Используйте sqlQuery из библиотеки RODBC для выбора данных.

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

0 голосов
/ 27 января 2019

MS Access не использует одинарные кавычки для разделения строк;он использует нестандартные двойные кавычки.

Возможно, формулировка запроса в качестве допустимого синтаксиса MS Access поможет:

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