0
我一直在用SQL处理Access数据库。我试图执行以下查询:查询SQL Microsoft Access错误?
SELECT Produtos.produto,
[aux].[total]/[Produtos].[existencias] AS [peso consumos nas existencias]
FROM (SELECT Produtos.produto, SUM(Consumos.quantidade) AS total
FROM Consumos, Produtos, Fornecedores
WHERE Consumos.codproduto=Produtos.produto
AND Produtos.codfornecedor=9
GROUP BY Produtos.produto
ORDER BY Produtos.produto) AS aux
INNER JOIN Produtos
ON aux.produto = Produtos.produto
WHERE (((aux.produto)=[Produtos].[produto]));
的结果仔细一看向我表明列[比索consumos NAS existencias]乘以10,试图解决这一问题后,我发现,我是不是使用该表Fornecedores虽然我打电话后,从关键字,所以我删除它:
SELECT Produtos.produto,
[aux].[total]/[Produtos].[existencias] AS [peso consumos nas existencias]
FROM (SELECT Produtos.produto, SUM(Consumos.quantidade) AS total
FROM Consumos, Produtos
WHERE Consumos.codproduto=Produtos.produto
AND Produtos.codfornecedor=9
GROUP BY Produtos.produto
ORDER BY Produtos.produto) AS aux
INNER JOIN Produtos
ON aux.produto = Produtos.produto
WHERE (((aux.produto)=[Produtos].[produto]));
运行后,结果是正确的。这是否会发生?如果是这样,为什么?
谢谢!
是的,它应该发生。通过包含Fornecedores并且不指定连接条件,您可以有效地询问外部连接或获取每一行,从而返回多个结果。如果你只查看内部查询,你可能会看到第一个sql中的行数是第二个sql的10倍。 –