Jump to content
Fórum Script Brasil
  • 0

Soma entre 2 tabelas


Guest --Vinícius --

Question

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 to comment
Share on other sites

4 answers to this question

Recommended Posts

  • 0

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

Edited by kuroi
Link to comment
Share on other sites

  • 0
Guest --Vinícius --

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!

Link to comment
Share on other sites

  • 0
Guest --Vinícius --

Possivelmente ele está duplicando as entradas.

9+9=18

18-1-1 = 16

Nã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???

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      152k
    • Total Posts
      651.5k
×
×
  • Create New...