Присоединение к 3 CSV-файлам - PullRequest
0 голосов
/ 07 апреля 2020

Мне нужно извлечь данные из 3 разных файлов CSV (Adres.CSV, ID.CSV и Reg ios .CSV) и объединить их в таблицу Excel.

Этот оператор SQL работает нормально ,

StrSQL = "SELECT ID.[ID], Adres.[Naam], Adres.[Adres], Adres.[Plaats] " _
         & "FROM Adres.CSV Adres INNER JOIN ID.CSV ID ON Adres.[Naam] = ID.[Naam];"

, а также

StrSQL = "SELECT Adres.[Naam], Adres.[Adres], Adres.[Plaats], Regio.[Regio] " _
         & "FROM Adres.CSV Adres INNER JOIN Regios.CSV Regio ON Adres.[Plaats] = Regio.[Plaats];"  

, но когда я объединяю их в

StrSQL = "SELECT ID.[ID], Adres.[Naam], Adres.[Adres], Adres.[Plaats], Regio.[Regio] " _
         & "FROM Adres.CSV Adres " _
         & "INNER JOIN Regios.CSV Regio ON Adres.[Plaats] = Regio.[Plaats]" _
         & "INNER JOIN ID.CSV ID ON Adres.[Naam] = ID.[Naam];"

, я получаю сообщение об ошибке, что отсутствует оператор.

Что я пропускаю?

1 Ответ

2 голосов
/ 07 апреля 2020

Здесь есть две проблемы:

  1. Вам не хватает пробела между 3-й и 4-й строками.
  2. JET / ACE SQL требует использования скобок при выполнении нескольких joins.

Это должно исправить ошибку sql, которую вы видите:

StrSQL = "SELECT ID.[ID], Adres.[Naam], Adres.[Adres], Adres.[Plaats], Regio.[Regio] " _
         & "FROM (Adres.CSV Adres " _
         & "INNER JOIN Regios.CSV Regio ON Adres.[Plaats] = Regio.[Plaats]) " _
         & "INNER JOIN ID.CSV ID ON Adres.[Naam] = ID.[Naam];"

Ваша строка в итоге оценивается как ...Regio.[Plaats]INNER JOIN ID.CSV.... Это отсутствие пробелов заставляет парсер sql пропускать Ваш второй INNER JOIN.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...