库存 SQL 查询的歧义错误,其中两个字段应相等才能进行计算.MS-访问



有了这组简单的表格,我想制作一个库存来区分来自不同提供商的相同产品,但我在运行查询时遇到"歧义错误",尽管它会起作用。我不知道如何解决这个问题。

这是我尝试的查询:

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;

在这种情况下,您可以使用子查询:

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;