Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

vabreu

UPDATE pegando resutando de dois campos na mesma linha

Recommended Posts

Olá pessoa;

 

Estou com uma dúvida, eu quero adicionar no campo subtração de dois campos e colocar e resultado na linha correspondente (nesse caso eu uso o ID correspondente). Vou colocar um exemplo para explicar melhor:

 

ID NAME valX valY total

1 X 1 9 0

2 y 11 17 0

3 z 18 21 0

4 k 23 48 0

 

###Resultado que gostaria####

 

ID NAME valX valY total

1 X 1 9 8

2 y 11 17 6

3 z 18 21 3

4 k 23 48 25

 

###De ante mão já falo que isso não vai funcionar####

UPDATE Table SET total = (SELECT valY-valX FROM Table WHERE ID=1) FROM Table

 

######Bom procurando na net descobri que infelizmente, você não pode atualizar uma tabela unida com ele mesmo no MySQL.

 

######Então fui atras de uma solução e descobrir a seguinte>

 

CREATE FUNCTION `fn_get_sum`(id2 INT) RETURNS int(11)

READS SQL DATA

BEGIN

DECLARE r INT;

SELECT valY - valX

INTO r

FROM Table

WHERE id = id2;

RETURN r;

END $$

 

DELIMITER ;

 

UPDATE Table SET total = fn_get_sum(id)

 

#####Mas também não funciona,

Segue a msg de erro:

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 4

 

#####A linha 4 corresponde a isso:

id2 INT ) RETURNS int( 11 ) READS SQL DATA BEGIN DECLARE r INT;

 

---------------------------------------

 

Gostaria de dicas, quem já passou por isso e puder ajudar agradeço, já modifique algumas coisas, mas nada, acredito que seja um erro bobo, mas não estou vendo, desculpe a noobice. Obrigado!

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.