Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Dúvida

bom dia!

eu queria saber como eu posso fazer para que, quem tenha uma comissao = 0 , receba uma comissão de 15%...

na aula o prof faz

update vendedores SET comissao= comissao*1.15,

nesse caso , o cara que tem zero de comissão, continua com zero mesmo que todos recebam um aumento de 15%...

eu tentei desse jeito aí mas não deu certo.. alguém tem uma luz? abraço!

  update vendedores set 
  case when comissao = 0 then  (comissao = comissao + 0.15)
  else (comissao = comissao * 1.15) ;
3 respostas

Bom dia Eder, tudo bem?

Não entendi, realmente o código do professor tem a intenção de deixar zerado os valores cuja comissão seja 0.

Caso vc queira atribuir um valor de comissão a vendedores que não tem percentual de comissão vc deve alterar de outra forma.

UPDATE VENDEDORES SET COMISSAO = 0.20 WHERE COMISSAO = 0;

No caso vc estaria atribuindo um valor (0.20) quando o valor de comissão esteja zero.

muito obrigado João, isso resolve sim!

agora, vc acha que o raciocinio que tive acima pode dar certo se corrigido ?

Obrigado.

solução!

Boa noite Eder, beleza?

Tem como corrigir sim, ai depende do que vc vai fazer.

Segue mais um exemplo de alteração do valor com o case

UPDATE VENDEDORES SET COMISSAO =  CASE 
                                            WHEN (COMISSAO = 0 OR COMISSAO IS NULL) THEN COMISSAO = 0.20 
                                            ELSE COMISSAO = COMISSAO + 0.15 
                                      END CASE;

Faz um tempinho que não uso mysql mas acho que a sintaxe está ok.

A ideia é, quando a comissão for zero ou nula vc inputa um valor X (no caso 0.20) quando não for vc incrementa ela em 0.15.