库存 SQL 查询出现歧义错误,其中两个字段应相等以进行计算。 MS-ACCESS
Posted
技术标签:
【中文标题】库存 SQL 查询出现歧义错误,其中两个字段应相等以进行计算。 MS-ACCESS【英文标题】:Getting ambiguity error for a inventory SQL query where two fields should be equal to make the calculation. MS-ACCESS 【发布时间】:2017-07-29 14:53:40 【问题描述】:拥有this simple group of tables,我想制作一个清单,以区分来自不同供应商的相同产品,但我在运行查询时遇到“歧义错误”,尽管它可以工作。我不知道如何解决这个问题。
这是我尝试过的查询:
SELECT tblProducts.product_Name,
tblProviders.provider,
Nz(Sum(tblIntakes.intake_QTY),0)-
Nz(Sum(tblExits.exit_QTY)) AS Stock
FROM tblProviders,
(tblProducts LEFT JOIN
tblExits
ON tblProducts.product_ID = tblExits.product_ID
) LEFT JOIN
tblIntakes
ON tblProducts.product_ID = tblIntakes.product_ID
GROUP BY tblProducts.product_Name, tblProviders.provider;
【问题讨论】:
您应该尝试在FROM
子句中不使用逗号来重写您的查询。
【参考方案1】:
在这种情况下,您可以使用子查询:
SELECT
tblProducts.product_Name,
tblProviders.provider,
Nz((
SELECT SUM(intake_QTY)
FROM tblIntakes
WHERE
tblIntakes.product_ID = tblProducts.product_ID AND
tblIntakes.provider_ID = tblProviders.provider_ID
), 0) -
Nz((
SELECT SUM(exit_QTY)
FROM tblExits
WHERE
tblExits.product_ID = tblProducts.product_ID AND
tblExits.provider_ID = tblProviders.provider_ID
), 0) AS Stock
FROM tblProviders, tblProducts;
【讨论】:
以上是关于库存 SQL 查询出现歧义错误,其中两个字段应相等以进行计算。 MS-ACCESS的主要内容,如果未能解决你的问题,请参考以下文章