Alexandre Neves 18/7/2012, 17:19
Na continuação, acrescente o campo Unitário na tabela detalhevenda e utilize este código
SELECT Data, Codigo, Insumo, QTC-QTV AS Saldo,Format((TotalCompra-TotalVenda)/(QTC-QTV),'0.00') as CustoMédio
FROM (SELECT Data, TC2.CodInsumo AS Codigo, Insumo, (SELECT IIf(Sum(Quantidade)>0,Sum(Quantidade),0) FROM Compras LEFT JOIN DetCompras ON Compras.CodCompra=DetCompras.CodCompras WHERE Data<=TC1.Data and CodInsumo=TC2.CodInsumo) AS QTC,(SELECT IIf(Sum(Quantidade)>0,Format(Sum(Quantidade*Unitário),'0.00'),0) FROM Compras LEFT JOIN DetCompras ON Compras.CodCompra=DetCompras.CodCompras WHERE Data<=TC1.Data and CodInsumo=TC2.CodInsumo) AS TotalCompra, (SELECT IIf(Sum(Quantidade)>0,Format(Sum(Quantidade*Unitário),'0.00'),0) FROM Vendas LEFT JOIN DetVendas ON Vendas.CodVenda=DetVendas.CodVenda WHERE Data<=TC1.Data and CodProduto=TC2.CodInsumo) AS TotalVenda, (SELECT IIf(Sum(Quantidade)>0,Sum(Quantidade),0) FROM Vendas LEFT JOIN DetVendas ON Vendas.CodVenda=DetVendas.CodVenda WHERE Data<=TC1.Data and CodProduto=TC2.CodInsumo) AS QTV
FROM (Compras AS TC1 LEFT JOIN DetCompras AS TC2 ON TC1.CodCompra=TC2.CodCompras) LEFT JOIN Insumos ON TC2.CodInsumo=Insumos.CodInsumo
GROUP BY Data, TC2.CodInsumo,Insumo) AS [%$##@_Alias];