Obg pelo retorno. Vamos lá.
Criei uma tabela temporaria com o nome: Create Table lixo_teste (cd_prod integer, vlr_01 numeric(9,2), vlr_02 numeric(9,2), vlr_03 numeric(9,2)).
Ai eu uso o update pra pegar o valor maximo de uma coluna de outra tabela e colocar no vlr_01, depois eu pego o campo vlr_01 diminuo 1 e atribuo ao campo vlr_02 e a mesma coiasa com o campo vlr_03. Então ficaria assim
cd_prod vlr_01 vlr_02 vlr_03
000001 10,00 9,00 8,00
000002 15,00 14,00 13,00
Como o vlr_01 é de um select max... eu uso o resultado dentro da mesma update para compor os campos vlr_02 e vlr_03.
No firebird 2.5 eu utilizada o OldSetClauseSemantics = 1 , mas no firebird 3 não há essa possibilidade. Eu queria entender se no update eu não consigo mesmo utilizar o resultado de uma campo para ser utilizado em outro, no caso, no mesmo comando: update lixo_teste vlr_01 = 10, vlr_02 = vlr_01 -1, vlr_03 = vlr_02 - 1. Neste exemplo não fica 10 - 9 - 8 o resultado e sim 10 -1 -1. Se eu quiser aproveitar a informação eu devo colocar no execute block o update lixo_teste set vlr_01=10. depois update lixo_teste vlr_02 = vlr_01 - 1....
Ou tem alguma outra forma de eu aproveitar minha lógica?