Использование псевдонимов с двумя объединениями в запросе MS-Access - PullRequest
0 голосов
/ 30 апреля 2019

Я пытаюсь добавить объединения, которые позволят запросу отображать соответствующие tbl_ICA.[Abbreviation] для tbl_AssyMoves.[To ICA] и tbl_AssyMoves.[From ICA] в каждой записи.

(таблицы связаны как показано здесь )

Я могу заставить один Join работать нормально, но когда я добавляю второй, я получаю

Синтаксическая ошибка (отсутствует оператор) в выражении запроса 't1. [ICA #] = t. [Из ICA] INNER JOIN t1 При t2 ON t2. [ICA #] = t. [В ICA'

Похоже, что он не распознает второй JOIN как другую функцию. Мне нужны псевдонимы, так как я выбираю два разных экземпляра .[Abbreviation].

Запрос:

SELECT t.[Assy ID], t1.[Abbreviation], t.[From ICA], t2.[Abbreviation], t.[To ICA], t.[To Loc], t.[Date], t.Comments
FROM tbl_AssyMoves As t
INNER JOIN tbl_ICAs As t1
     ON t1.[ICA #]=t.[From ICA]
INNER JOIN t1 As t2
     ON t2.[ICA #]=t.[To ICA]
WHERE ((t.Date Between [Forms]![Form1]![StartDate] And [Forms]![Form1]![EndDate])
**note, additional WHERE criteria omitted for brevity**

1 Ответ

1 голос
/ 30 апреля 2019

Синтаксис доступа отличается от других dbms, когда дело доходит до объединений (среди прочего).Требуется скобки:

SELECT t.[Assy ID], t1.[Abbreviation], t.[From ICA], t2.[Abbreviation], t.[To ICA], t.[To Loc], t.[Date], t.Comments
FROM (tbl_AssyMoves As t INNER JOIN tbl_ICAs As t1 ON t1.[ICA #]=t.[From ICA])
INNER JOIN t1 As t2 ON t2.[ICA #]=t.[To ICA]
WHERE ((t.Date Between [Forms]![Form1]![StartDate] And [Forms]![Form1]![EndDate])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...