Ir para conteúdo
Fórum Script Brasil
  • 0

Soma entre 2 tabelas


Guest --Vinícius --

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

  • 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

Editado por kuroi
Link para o comentário
Compartilhar em outros 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 para o comentário
Compartilhar em outros 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 para o comentário
Compartilhar em outros sites

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      652,1k
×
×
  • Criar Novo...