UPDATE pegando resutando de dois campos na mesma linha
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!
Discussão (1)
Carregando comentários...