Guest --Vinícius -- Postado Fevereiro 25, 2008 Denunciar Share Postado Fevereiro 25, 2008 Olá pessoal beleza?!Necessito de uma ajuda com sql..tenho 3 tabelas: produto, saida e entradapreciso listar todos os produtos com sua respectiva quantidade.o problema é que não existe um campo quantidade, ela é calculada pela quantidade de saidas e entradas.eu fiz assim:select descricao, (select sum(quantidade) from saida) + (select sum(quantidade) from entrada) as quantidade from produtoassim, até funcinou, mas só pra um registro, eu preciso disso pra todos..Alguém sabe como eu poderia fazer??muito obrigado se alguém puder ajudar!!! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 kuroi Postado Fevereiro 25, 2008 Denunciar Share Postado Fevereiro 25, 2008 (editado) acho q seria entradas menos saidas não?? mas você tem tipo um campo com codigo do produto nas entradas e saidas pra poder saber de qual produto se trata não?? então faca com Join:Select produto.codigo, produto.descricao, (Sum(saidas.quantidade) + Sum(entradas.quantidade)) As quantidade From (produto INNER JOIN saidas ON produto.codigo = saidas.codigo) INNER JOIN entradas ON produto.codigo = entradas.codigo Group By produto.codigo, produto.descricao Editado Fevereiro 25, 2008 por kuroi Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Guest --Vinícius -- Postado Fevereiro 28, 2008 Denunciar Share Postado Fevereiro 28, 2008 Olá amigo, muito obrigado pela ajuda, está no caminho, mas ainda não deu certo.Eu fiz uma alteração e chegou perto. Eu alterei para subtrair a soma das saídas da soma das entradas. Mas o problema é que ele não retornou todos os produtos, alguns que possuiam só entreda ele não trouxe o valor, e os valores que ele troxe estão errados. Aconteceu um problema assim. O produto com código = 1 tem uma entreada com quantidade 9 e duas saídas, cadas uma com quantidade 1. O resultado correto para trazer seria 7, mas ele ta trazendo 16.porque será? Por favor, aguardo ajudas!! muito obrigado! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 big0de Postado Março 1, 2008 Denunciar Share Postado Março 1, 2008 Possivelmente ele está duplicando as entradas.9+9=18 18-1-1 = 16Não sei a formula, por isso não posso te ajudar. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Guest --Vinícius -- Postado Março 4, 2008 Denunciar Share Postado Março 4, 2008 Possivelmente ele está duplicando as entradas.9+9=18 18-1-1 = 16Não sei a formula, por isso não posso te ajudar.Realmente, foi isso que aconteceu, eu tirei o group by e ele trouxe duas linhas com quantidade 9, sendo q na verdade só existe um registro, mas como existe 2 registros d saída ele fez isso... na verdade ele deveria vir vazio quando for assim... no oracle eu faria assim: entrada.codigo(+)=saida.codigo.... alguém sabe como ficaria no sql comum??? Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Guest --Vinícius --
Olá pessoal beleza?!
Necessito de uma ajuda com sql..
tenho 3 tabelas: produto, saida e entrada
preciso listar todos os produtos com sua respectiva quantidade.
o problema é que não existe um campo quantidade, ela é calculada pela quantidade de saidas e entradas.
eu fiz assim:
select descricao, (select sum(quantidade) from saida) + (select sum(quantidade) from entrada) as quantidade from produto
assim, até funcinou, mas só pra um registro, eu preciso disso pra todos..
Alguém sabe como eu poderia fazer??
muito obrigado se alguém puder ajudar!!!
Link para o comentário
Compartilhar em outros sites
4 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.