vabreu 0 Denunciar post Postado Julho 4, 2012 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
aline_ 4 Denunciar post Postado Julho 5, 2012 Não precisa do select, é só fazer: UPDATE Table SET total = valY-valX WHERE ID=1 Compartilhar este post Link para o post Compartilhar em outros sites