MS Access:FROM 子句中的语法错误

MS Access: Syntax error in FROM Clause

我收到指向我的 FROM 子句的语法错误,但我无法弄清楚。这里的目标是使用子查询来过滤和return一些信息before joining.

我试过的方法:This question on SO 建议我用括号将 2 LEFT JOINS 括起来。我这样做了,但没有帮助。下面是结果,我得到的错误在标题中。

请注意,在对 JOINS 加上括号之前,我收到以下错误:Syntax error (missing operator in query expression 'tbl_HersheySAPInventory.item = maxdatejob.item LEFT JOIN (SELECT * FROM dbo_Item_by_Location_LP_All WHERE qty_on_hand >'.

SELECT 

    tbl_HersheySAPInventory.ID, 
    tbl_HersheySAPInventory.item, 
    dbo_job.job_date, 
    dbo_job.job, 
    dbo_job.suffix,
    Sum(comptable.qty_on_hand) AS SumOfqty_on_hand,
    comptable.whse,
    comptable.product_code

FROM 

    tbl_HersheySAPInventory 

    (LEFT JOIN 

        (SELECT 

            dbo_job.job_date, 
            dbo_job.job, 
            dbo_job.suffix, 
            dbo_job.item AS FG,
            dbo_jobmatl.item

        FROM 

            dbo_job 
            INNER JOIN dbo_jobmatl ON dbo_job.job = dbo_jobmatl.job AND dbo_job.suffix = dbo_jobmatl.suffix 

        WHERE

            dbo_job.item Not Like "Indirect" AND
            dbo_job.job Not Like "C0*" AND
            dbo_job.job Not Like "*R0*"

        ) AS maxdatejob 

    ON tbl_HersheySAPInventory.item = maxdatejob.item)

    (LEFT JOIN

        (SELECT * FROM dbo_Item_by_Location_LP_All WHERE qty_on_hand > 0 AND whse = Forms!MainForm!Combo353)  AS comptable

    ON comptable.item = tbl_HersheySAPInventory.item)


ORDER BY 

    tbl_HersheySAPInventory.item, 
    dbo_job.job_date;

您的括号可能有问题。我在将 SQL 写入 Access 时遇到了类似的问题 - 似乎有一些奇怪的要求将括号括在 JOINS 和 WHERE 子句周围。

我推荐尝试的伪代码是:

FROM 
(
(
Table A
)
LEFT JOIN
  (
  Subquery1
  )
)
LEFT JOIN
  (
  Subquery2
  )

我尝试在下方进行更新。试一试,让我知道:

SELECT 

    tbl_HersheySAPInventory.ID, 
    tbl_HersheySAPInventory.item, 
    dbo_job.job_date, 
    dbo_job.job, 
    dbo_job.suffix,
    comptable.whse,
    comptable.product_code,
    Sum(comptable.qty_on_hand) AS SumOfqty_on_hand    
FROM 
(
(
    tbl_HersheySAPInventory 



    LEFT JOIN 

        (SELECT 

            dbo_job.job_date, 
            dbo_job.job, 
            dbo_job.suffix, 
            dbo_job.item AS FG,
            dbo_jobmatl.item

        FROM 

            dbo_job 
            INNER JOIN dbo_jobmatl ON dbo_job.job = dbo_jobmatl.job AND dbo_job.suffix = dbo_jobmatl.suffix 

        WHERE

            dbo_job.item Not Like "Indirect" AND
            dbo_job.job Not Like "C0*" AND
            dbo_job.job Not Like "*R0*"

        ) AS maxdatejob 

    ON tbl_HersheySAPInventory.item = maxdatejob.item
    )
    )

    LEFT JOIN

        (SELECT * FROM dbo_Item_by_Location_LP_All WHERE qty_on_hand > 0 AND whse = Forms!MainForm!Combo353)  AS comptable

    ON comptable.item = tbl_HersheySAPInventory.item

GROUP BY

    tbl_HersheySAPInventory.ID, 
    tbl_HersheySAPInventory.item, 
    dbo_job.job_date, 
    dbo_job.job, 
    dbo_job.suffix,
    comptable.whse,
    comptable.product_code   


ORDER BY 

    tbl_HersheySAPInventory.item, 
    dbo_job.job_date;