2015-09-19 2 views
0

У меня проблема с LEFT JOIN запросом, который работает в SQL, но когда я пытаюсь запросить базу данных MDB, он не работает.Ms Acces - Отсутствует оператор (LEFT JOIN)

Здесь:

Select PH.[ID], PH.[SText], PH.[Datum] ,PHpol.[SText], PHpol.[Mnozstvi], PHpol.[kcJedn], PHpol.[RelSzDPH], PHpol.[SDph], skst.[ID] 
from PH LEFT JOIN PHpol ON PH.[ID] = PHpol.[RefAg] 
LEFT JOIN Skz ON PHpol.[RefSKz] = Skz.[ID] 
LEFT JOIN Skst ON Skz.[RefStruct] = Skst.[ID] 
WHERE RelforUh = 2 
AND RelCr=43 
AND Datum BETWEEN #2015-01-01# AND #2015-09-01# 

Надеется, что эти сведения являются достаточно для признания проблемы.

Заранее благодарен!

ответ

0

В MS Access, вам нужно скобки для нескольких объединений:

Select PH.[ID], PH.[SText], PH.[Datum] ,PHpol.[SText], PHpol.[Mnozstvi], PHpol.[kcJedn], PHpol.[RelSzDPH], PHpol.[SDph], skst.[ID] 
from ((PH LEFT JOIN 
     PHpol 
     ON PH.[ID] = PHpol.[RefAg] 
    ) LEFT JOIN 
     Skz 
     ON PHpol.[RefSKz] = Skz.[ID] 
    ) LEFT JOIN 
    Skst 
    ON Skz.[RefStruct] = Skst.[ID] 
WHERE RelforUh = 2 AND RelCr=43 AND 
     Datum BETWEEN #2015-01-01# AND #2015-09-01# 
0

В MS-Access вам нужно добавить parentheses, если у вас есть для запроса на более чем два таблиц. Структура выглядит следующим образом ..

Синтаксис для того, когда у вас есть две таблицы

Select <column list> 
From Table1 Join Table2 
on Table1.Col = Table2.col 
where <your conditions> 

Синтаксис более двух таблиц.

Select <column list> 
From (Table1 Join Table2 
on Table1.Col = Table2.col) 
Join Table3 on Table2.col = Table3.col 
where <your conditions> 

() убедитесь, что все, что написано в нем, действовать в качестве таблицы. Если у вас больше таблиц, вы можете присоединиться к ним одинаково. Вы можете узнать больше о соединении нескольких таблиц в MS-Access here.

Ну, вы можете переписать запрос следующим образом.

Select PH.[ID], PH.[SText], PH.[Datum] ,PHpol.[SText], PHpol.[Mnozstvi], PHpol.[kcJedn], PHpol.[RelSzDPH], PHpol.[SDph], skst.[ID] 
from ((PH LEFT JOIN PHpol ON PH.[ID] = PHpol.[RefAg]) 
LEFT JOIN Skz ON PHpol.[RefSKz] = Skz.[ID]) 
LEFT JOIN Skst ON Skz.[RefStruct] = Skst.[ID] 
WHERE RelforUh = 2 
AND RelCr=43 
AND Datum BETWEEN #2015-01-01# AND #2015-09-01# 
Смежные вопросы