Página 1 de 1

Problema no MySQL????

Enviado: 11 Jun 2021 19:29
por JoséQuintas
Não sei dizer se é problema do MySQL, ou se era esperado o comportamento.
O comando é mais complexo, aqui uma "redução".

Código: Selecionar todos

UPDATE JPITEM
SET SALDO =0 ;

UPDATE JPITEM
LEFT JOIN JPESTOQUE ON jpitem.idProduto = jpestoque.esProduto
SET SALDO = SALDO + jpestoque.qtde
Isso estava causando diferenças.

Alterei pra:

Código: Selecionar todos

UPDATE JPITEM
INNER JOIN
   ( SELECT ESPRODUTO, SUM( JPESTOQUE.ESQTDE ) AS SOMA
    FROM JPESTOQUE 
   GROUP BY ESPRODUTO ) AS B
INNER JOIN ON JPITEM.IDPRODUTO = B.ESPRODUTO
SET
   SALDO = B.SOMA
Ao invés de ir gravando/somando a cada lançamento, somei os lançamentos e gravei direto o total.

Nota: já comecei a usar INNER JOIN, num caso como esse o INNER JOIN pode evitar problemas.

Problema no MySQL????

Enviado: 12 Jun 2021 10:04
por Poka
Bom dia à todos.

Quintas, só pra ver se estou entendendo, quando vc quer mostrar um saldo de um determinado dia , faz a soma de tudo? entrada e saida?

Eu gravo numa ficha de estoque como uma conta corrente a cada lançamento, quando quero o saldo de um determinado dia é só pegar o saldo do dia.

Ou estou entendendo errado.


Poka

Problema no MySQL????

Enviado: 12 Jun 2021 11:52
por JoséQuintas
Poka escreveu:Quintas, só pra ver se estou entendendo, quando vc quer mostrar um saldo de um determinado dia , faz a soma de tudo? entrada e saida?
Eu gravo numa ficha de estoque como uma conta corrente a cada lançamento, quando quero o saldo de um determinado dia é só pegar o saldo do dia.
Ou estou entendendo errado.
É isso mesmo.
Por isso vai demorar cada vez mais.
O saldo final está sempre disponível.
Uma coisa que já vi, mais comum, é partir do saldo final e fazer a conta para trás.

E já percebi que vai ficar mais fácil se separar os saldos, para o MySQL.
Tenho a opção de vários depósitos, e QTD1,QTD2,QTD3...9 acaba complicando mais do que se fosse deposito, qtd.
Ao invés de usar "QTD" + Str( nDeposito, 1 ) usaria direto o número do depósito como chave de atualização.

No final tem os prós e os contras.
Se guardar igual uma ficha, teria que ficar recalculando no caso de alteração/exclusão, apesar de não ser muito comum ficar alterando/excluindo.
Talvez a melhor opção seja fazer de trás pra frente, partindo do saldo final, assim quanto mais recente mais rápido.