3 внутренних соединения и левое соединение в моем заявлении FROM - PullRequest
0 голосов
/ 27 июня 2019

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

не может присоединиться к объекту Memo, OLE или гиперссылки (master_export.item = vw_items.Item) "

Это оригинальный код:

SELECT master_export_pt.commitment_number AS [Commitment Number], 
  Sum(master_export_pt.receipt_amount) AS Amount, 
  LocalLocation.Location_Name AS Child_Location_Name, 
  LocalLocation_1.Location_Name AS Parent_Location_Name, 
  BypassLocation.JNL_Sales AS ByPassSales, 
  BypassLocation.JNL_COGS AS ByPassCogs, 
  master_export_pt.order_type
FROM (((master_export_pt 
  INNER JOIN vw_items ON master_export_pt.item = vw_items.Item) 
  INNER JOIN BypassLocation ON master_export_pt.location_id = BypassLocation.location_id) 
  INNER JOIN LocalLocation ON BypassLocation.location_id = LocalLocation.Location_ID) 
  LEFT JOIN LocalLocation AS LocalLocation_1 
    ON LocalLocation.parent_location_id = LocalLocation_1.Location_ID

и попытался изменить первый JOIN на:

FROM (((master_export_pt, vw_items) 
  where (master_export_pt.item = vw_items.Item)) 
  INNER JOIN BypassLocation ON master_export_pt.location_id = BypassLocation.location_id) 
  INNER JOIN LocalLocation ON BypassLocation.location_id = LocalLocation.Location_ID) 
  LEFT JOIN LocalLocation AS LocalLocation_1 
    ON LocalLocation.parent_location_id = LocalLocation_1.Location_ID

но теперь я получаю сообщение об ошибке «Ошибка синтаксиса в операции JOIN». Есть ли способ переписать запрос без использования вложенных операторов JOIN?

1 Ответ

0 голосов
/ 01 июля 2019

Спасибо всем, кто откликнулся.Я попробовал следующий код, и, кажется, добился цели:

SELECT
  xxx.commitment_number AS [Commitment Number],
  Sum(xxx.receipt_amount) AS Amount,
  xxx.Location_Name AS Child_Location_Name,
  xxx.Location_Name AS Parent_Location_Name,
  xxx.JNL_Sales AS ByPassSales,
  xxx.JNL_COGS AS ByPassCogs,
  xxx.order_type
FROM (
SELECT * FROM
    master_export_pt AS mept, vw_items AS vi, BypassLocation AS bl, LocalLocation AS ll
WHERE mept.item = vi.Item
        AND mept.location_id = bl.location_id
        AND bl.location_id = ll.Location_ID) AS xxx
LEFT OUTER JOIN LocalLocation AS ll1 ON xxx.parent_location_id = ll1.Location_ID 
GROUP BY
  xxx.commitment_number,
  xxx.Location_Name,
  ll1.Location_Name,
  xxx.JNL_Sales,
  xxx.JNL_COGS,
  xxx.order_type;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...