Bom dia galera do GUJ, blz?
bom, sou leigo em sql e estou tendo muita dificuldade pra gerar uma consulta que me retorne valores consultando 3 tabelas distintas.
select produtoId, p.descricao, sum(geral.quantComp), sum(geral.quantUtil), sum(geral.quantComp) - sum(geral.quantUtil) as sald, sum(geral.valorTotal) / sum(geral.quantComp) as custoMedio
from (select produtoId, quantidade as quantComp, 0 as quantUtil, (quantidade * valorUnit) as valorTotal from entradainsumo
union all
select produtoId, 0 as quantComp, quantTotalUtilizada as quantUtil, 0
from operacaotal) as geral
inner join produto p on p.idProduto = produtoId
group by p.descricao
O código q produzi inicialmente funciona na consulta entre as duas tabelas “entradainsumo” e “operacaotal”. Da tabela “entradainsumo” eu retorno a soma dos valores da coluna “quantidade”; e da tabela “operacaotal” eu retorno a soma dos valores da coluna quantidadeUtilizada, no intuito de subtrair um pelo outro e obter um saldo. Até ai tudo bem.
No entanto precisa gerar mais um valor, com a coluna que está na tabela ‘tal’, mais ou menos deveria ser assim.
select produtoId, p.descricao, sum(geral.quantComp), sum(geral.quantUtil), sum(geral.quantComp) - sum(geral.quantUtil) as sald, sum(geral.valorTotal) / sum(geral.quantComp) as custoMedio, sum(geral.quantPrev)
from (select produtoId, quantidade as quantComp, 0 as quantUtil, (quantidade * valorUnit) as valorTotal from entradainsumo
union all
select tId, produtoId, 0 as quantComp, quantTotalUtilizada as quantUtil, 0, (dose * aplicacao * t.area) as quantPrev
from operacaotal) as geral
inner join produto p on p.idProduto = produtoId
inner join tal t on t.idT = geral.tId
group by p.descricao
entendo que o código acima está errado, mas foi só pra demonstrar qual a ideia.
Quero fazer um cálculo de soma com ‘quantPrev’, mas primeiro preciso calcular usando as colunas ‘dose’ e ‘apliacao’ que esta na tabela ‘operacaotal’ e a coluna ‘area’ que só está na tabela ‘tal’… já tentei várias formas, mas sem êxito.
Agradeço muito se alguém puder me ajudar.