Jump to content

Geraldo Silva

Members
  • Content count

    3
  • Joined

  • Last visited

Community Reputation

0 Comum

About Geraldo Silva

Recent Profile Visitors

143 profile views
  1. Geraldo Silva

    trigger para criar e atualizar saldo em uma tabela

    Bom, ninguém ajudou aqui, mas encontrei uma solução diferente em outro fórum e acho que conhecimento é pra ser compartilhado, então vou postar pra ajudar alguém no futuro a solução simples e que resolveu perfeitamente.Eu coloquei a query abaixo em uma view e o resultado ficou exatamente como eu queria. SELECT DATE_FORMAT(data,'%d/%m/%Y') AS data, SUM(IF(tipo = 'C', valor, 0)) AS credito, SUM(IF(tipo = 'D', valor, 0)) AS debito, (SELECT SUM(IF(tipo = 'C', valor, -valor)) FROM lancamentos AS L2 WHERE DATE_FORMAT(lancamentos.data,'%Y%m%d') >= DATE_FORMAT(L2.data,'%Y%m%d') ) AS saldo FROM lancamentos GROUP BY DAY(data), MONTH(data), YEAR(data)
  2. Geraldo Silva

    trigger para criar e atualizar saldo em uma tabela

    nem uma ajudinha pessoal?
  3. olá pessoal. sou novo no forum e também no assunto trigger para o mysql e precisei usar este recurso, mas não estou conseguindo chegar ao resultado que gostaria, por isso venho aqui pedir ajuda de vocês. seguinte: tenho uma tabela 'lancamentos' com o campos [iD;HISTORICO;TIPO;VALOR;SALDO] [Tipo = Debito (D) ou Credito ©] e tenho criar uma trigger pra ser disparada no BEFORE INSERT para calcular o saldo e inserir no campo SALDO. vejam exemplo abaixo que já encontrei em outro post aqui. CREATE TRIGGER `SaldoAtual` BEFORE INSERT ON `lancamentos` FOR EACH ROW BEGIN DECLARE saldoAnterior DECIMAL(10,2); SET saldoAnterior = (SELECT L.SALDO FROM lancamentos L ORDER BY L.ID DESC LIMIT 1); IF saldoAnterior <> '' THEN IF (NEW.TIPO = 'C') THEN SET NEW.SALDO = saldoAnterior + NEW.VALOR; ELSE SET NEW.SALDO = saldoAnterior - NEW.VALOR; END IF; ELSE SET NEW.SALDO = NEW.VALOR; END IF; END esse exemplo funciona bem para o insert, mas existe outra dificuldade e não tenho conseguido resolver. Preciso ter outra trigger no BEFORE UPDATE da mesma tabela que se eu alterar um valor anterior por exemplo esta trigger atualize o saldo da linha alterada e de todas as outras linhas que existirem depois dela para que o saldo fique correto. espero ter me feito compreender e se alguém puder me ajudar com algum exemplo eu ficarei muito grato.
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.