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;
我收到指向我的 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;