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

(Resolvido) soma um dado no mysql


Guest zoinvoo

Pergunta

Olá pessoal,

Considerem a seguinte tabela mySQL;

CREATE TABLE `resultado` (

`extracao` varchar(5) NOT NULL,

`data` date NOT NULL,

`dz1` varchar(2) NOT NULL,

`dz2` varchar(2) NOT NULL,

`dz3` varchar(2) NOT NULL,

`dz4` varchar(2) NOT NULL,

`dz5` varchar(2) NOT NULL,

`dz6` varchar(2) NOT NULL,

`ant1dz1` varchar(2) DEFAULT NULL,

`ant1dz2` varchar(2) DEFAULT NULL,

`ant1dz3` varchar(2) DEFAULT NULL,

`ant1dz4` varchar(2) DEFAULT NULL,

`ant1dz5` varchar(2) DEFAULT NULL,

`ant1dz6` varchar(2) DEFAULT NULL,

PRIMARY KEY (`extracao`)

) ENGINE=InnoDB DEFAULT CHARSET=latin1;

ESSE E O SELECT DA TABELA:

extracao` `data` `dz1` `dz2` `dz3` `dz4` `dz5` `dz6` `ant1dz1` `ant1dz2` `ant1dz3` `ant1dz4` `ant1dz5` `ant1dz6`

00001 2/6/2008 00:00:00 12 31 41 51 16 27 {null} {null} {null} {null} {null} {null}

QUERO PEGAR O CONTEUDO DA COLUNA dz1 (12) SOMA + 1 E INSERIR O RESULTADO NA COLUNA ant1dz1.

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0

Oi, 'zoinvoo'!

Para obter o que você quer de maneira correta, você deveria modificar sua tabela para :

CREATE TABLE `resultado` (
  `extracao` varchar(5) NOT NULL,
  `data` date NOT NULL,
  `dz1` integer NOT NULL,
  `dz2` integer NOT NULL,
  `dz3` integer NOT NULL,
  `dz4` integer NOT NULL,
  `dz5` integer NOT NULL,
  `dz6` integer NOT NULL,
  `ant1dz1` integer NOT NULL,
  `ant1dz2` integer NOT NULL,
  `ant1dz3` integer NOT NULL,
  `ant1dz4` integer NOT NULL,
  `ant1dz5` integer NOT NULL,
  `ant1dz6` integer NOT NULL,
   PRIMARY KEY (`extracao`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
Depois, você deverá aplicar a query
UPDATE resultado 
SET ant1dz1 = dz1 + 1;

Na maneira Errada, ou seja, a sua maneira, a SQL seria a mesma da exibida acima, mas focê forçará o "motor" do MySQL a realizar as transformações de tipo e, quando existir uma informação errada, por exemplo, espaço ou letra, a sql corre o risco de abortar, deixando-o na mão.

Link para o comentário
Compartilhar em outros sites

  • 0
Guest --zoinvoo --

Óla pessoal consegui fazer o que eu queria

olha so como ficou.

Criei um id com auto_increment, para pega o ultimo id de insert.

UPDATE resultado SET ant1dz1=dz1 - 1

WHERE idextracao= (select last_insert_id());

usei a dica do update foi muito boa.

desse jeito posso pegar o valor de uma coluna da tabela, manipulá-lo e fazer o update usando o ultimo id de inserçao.

esse tratamento e melhor qaundo usado em triggers pois logo depois da inserçao a triggers já disparra e faz o que eu quero com os numeros das tabelas.

lógico isso para meu tipo de negócio cada um e diferente do outro,

mas se pude ajuda alguém com essa solução esta ótimo.

boa noite!!!!

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
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...