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

(Resolvido) Atualizar Saldo de Estoque


INFORMAIs

Pergunta

Alá amigos

O que preciso é somar todas a Compras subtrair todas as Vendas e o resultado disso gravar na tabela de produtos.

porem esse Sql abaixo esta me retornando algo estranho, observem a primeira e quarta linha da Grid

ou seja Vendeu sem ter Saldo, porem era para Ficar NEGATIVO, osaldo 

 

select   
  prd.CODPRO, 
  prd.NOMPRO, 
  IFNULL(( select sum(comp.QTDE_COMPRADA) from COMPRAS comp   where comp.COD_PRODUTO = prd.CODPRO),0) AS COMPRADO,
  IFNULL(( select sum(vds.QTDVEN)         from VENDAS   vds   where vds.CODVEN       = prd.CODPRO),0) as VENDIDO, 
  IFNULL(( select sum(comp.QTDE_COMPRADA) from COMPRAS comp  where comp.COD_PRODUTO = prd.CODPRO) - ( select sum(vds.QTDVEN) from VENDAS vds  
  where vds.CODVEN = prd.CODPRO),0) as estoque  
from PRODUTOS prd  

 

e uma outra coisa quando o sql estiver OK queria gravar o resultado desta consulta em um campo da tabela de produtos

 

 

 

erro_sql.jpg

Link para o comentário
Compartilhar em outros sites

6 respostass a esta questão

Posts Recomendados

  • 0

Tenta assim:

SELECT CODPRO, NOMPRO, COMPRADO, VENDIDO, (COMPRADO - VENDIDO) AS ESTOQUE
FROM (SELECT prd.CODPRO, prd.NOMPRO, SUM(comp.QTDE_COMPRADA) AS COMPRADO, SUM(vds.QTDVEN) AS VENDIDO
      FROM PRODUTOS prd 
      LEFT JOIN COMPRAS comp ON comp.COD_PRODUTO = prd.CODPRO
      LEFT JOIN VENDAS   vds ON vds.CODVEN       = prd.CODPRO
     ) e;

depois faremos a segunda parte

Link para o comentário
Compartilhar em outros sites

  • 0

Ok.

Corrija para :

SELECT CODPRO, NOMPRO, COMPRADO, VENDIDO, (COMPRADO - VENDIDO) AS ESTOQUE
FROM (SELECT prd.CODPRO, prd.NOMPRO, SUM(comp.QTDE_COMPRADA) AS COMPRADO, SUM(vds.QTDVEN) AS VENDIDO
      FROM PRODUTOS prd 
      LEFT JOIN COMPRAS comp ON comp.COD_PRODUTO = prd.CODPRO
      LEFT JOIN VENDAS   vds ON vds.CODVEN       = prd.CODPRO
      GROUP BY prd.CODPRO
     ) e;

 

Link para o comentário
Compartilhar em outros sites

  • 0

Corrija para:

SELECT CODPRO, NOMPRO, COMPRADO, VENDIDO, (COMPRADO - VENDIDO) AS ESTOQUE
FROM (SELECT prd.CODPRO, prd.NOMPRO, SUM(IF(comp.QTDE_COMPRADA IS NULL, 0, comp.QTDE_COMPRADA)) AS COMPRADO, 
      SUM(IF(vds.QTDVEN IS NULL, 0, vds.QTDVEN)) AS VENDIDO
      FROM PRODUTOS prd 
      LEFT JOIN COMPRAS comp ON comp.COD_PRODUTO = prd.CODPRO
      LEFT JOIN VENDAS   vds ON vds.CODVEN       = prd.CODPRO
      GROUP BY prd.CODPRO
     ) e;

 

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.


  • Estatísticas dos Fóruns

    • Tópicos
      152k
    • Posts
      651,7k
×
×
  • Criar Novo...