Não recomendo fazer esse tipo de condição no Join, pois ele irá executar a mesma verificação para cada registro da tabela que você irá juntar.
I
Igor_Maciel
Como faria pra juntar as duas tabelas e somente o último registro atualizar?
Jonathan_Medeiros
Você está complicando a operação, porque não faz separado, uma coisa de cada vez?
Realiza uma consulta buscando os valores que você precisa obter, após obter os valores guarde os valores em uma variável ou algo do tipo, em seguida realize o update passando somente os valores, não é uma boa prática ficar fazendo junção de tabela pra esse tipo de operação.
I
Igor_Maciel
Comecei fazendo isso mas depois vi que tinha que fazer vários UPDATES pra cada situação. Aí de acordo com o valor inserido, ele vai realizar um cálculo específico entre colunas e buscar o UPDATE com aquela condição.
Tem alguma ideia pra esse caso de vários UPDATES?
E pra sempre atualizar o último registro, pq ele tá atualizando a coluna toda.
Jonathan_Medeiros
Quando você diz vários updates, são updates únicos ou vários registros em um único update?
Se são updates distintos com valores únicos, usa um laço de repetição, caso contrário o cenário que disse na resposta anterior já resolveria!
I
Igor_Maciel
É tipo assim: Entro com um valor, se a subtração dele com outra coluna for menor que zero é um update. Se for maior, faz outro update e se for igual a zero realiza outro.
Jonathan_Medeiros1 like
Então é só montar uma estrutura separada!
Monta o select que vai buscar os valores dos quais você precisa, guarde os valores em variáveis, feito isso monte 3 updates distintos!
Exemplo:
if(valorDaColuna<0){//Executa um update com a regra individual (Menor que zero)}elseif(valorDaColuna>0){//Executa um update com a regra individual (Maior que zero)}else{//Executa um update com a regra individual (Igual a zero)}