TSQL (как используется в MS SQL Server 2000 и 2005) допускает несколько предложений JOIN, одно за другим, без запятых или круглых скобок. Попробуйте это в Access, и это вызывает приступ:
«Синтаксическая ошибка (отсутствует оператор) в выражении запроса ...»
Из того, что я смог собрать в Google-land, Access SQL хочет, чтобы скобки сгруппировали предложения JOIN. Большинство советов о том, как это сделать, - использовать представление конструктора или мастер запросов и позволить Access выяснить, куда поместить скобки (которые НЕ требуются в стандартном SQL). Проблема в том, что я настолько привык делать SQL в текстовом редакторе (Блокнот, SSMS, VS2005 и т. Д.), Что мешают представлению дизайна и мастеру и заставляют мою оболочку ползать. Иногда мастера делают неверные предположения о том, что присоединяться, если есть несколько возможностей, и я настолько привык делать это самостоятельно в TSQL, что я бы предпочел не использовать мастера.
Нет ли инструмента, который преобразует TSQL в Access SQL, или хотя бы набор правил о том, где ставить скобки?
Пример:
SELECT ...
FROM Participant PAR
INNER JOIN Individual IND
ON PAR.APETSID = IND.APETSID
INNER JOIN Ethnicity ETH
ON IND.EthnicityID = ETH.ID
INNER JOIN Education EDU
ON IND.EducationID = EDU.ID
INNER JOIN Marital MAR
ON IND.Marital = MAR.ID
INNER JOIN Participant-Probation PXP
ON PAR.ID = PXP.ParticipantID
INNER JOIN Probation PBN
ON PXP.ProbationID = PBN.ID
INNER JOIN Class-Participant CXP
ON PAR.ID = CXP.ParticipantID
INNER JOIN Class CLS
ON CXP.ClassID = CLS.ID
INNER JOIN Official OFR
ON PAR.ReferringPO = OFR.ID
INNER JOIN Participant-Official PXO
ON PAR.ID = PXO.ParticipantID
INNER JOIN Official OFA
ON PXO.OfficialID = OFA.ID