Pessoal, eu tenho seguinte problema.. eu preciso fazer essa consulta em sql, onde se a fatura estiver cancelada,
eu vou exibir C, se não, eu exibo 1, e se estiver cancelada, eu exibo A de aberto.
porém, quando rodo a instrução abaixo, não funciona.. alguém sabe me dizer onde está meu erro?
YouhaveanerrorinyourSQLsyntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'ELSE IF(AR.EFETIVADO='1','E',NULL)ELSE(AR.EFETIVADO='0','A',NULL))asSTATU' at line 4
[editado] PS: o do entanglement deve funcionar melhor =P
Abraços
W
wilsontads
Tentei como disse, e não deu certo não…
IF(AR.CANCELADO='0')
BEGIN
AR.STATU ='C'
END
W
wilsontads
Acho que o case não resolve meu problema pelo seguinte…
se eu tiver uma conta cancelada=1 e que tenha sido efetivada, deverá aparecer C ao invés de E.
e vice-versa…
when AR.CANCELADO = '1' THEN 'C'
when AR.EFETIVADO = '1' THEN 'E'
W
wilsontads
Por isso eu precisaria fazer algo parecido com em java
if(cancelado)
entra e não testa os outros..
else if(efetivado)
se passou pelo if entra e não testa os seguintes
else
se passou sem entrar nos anteriores entra e continua
W
wilsontads
Desculpem, a solução apresentada pelo machado roda perfeitamente, e faz oque preciso…
OBg à todos…
meu código ficou assim…
SELECT
case
when AR.CANCELADO = ‘1’ THEN ‘C’ //Testa, se true sai do case, se false, testa os outros2
when AR.EFETIVADO = ‘1’ THEN ‘E’//Se passou sem entrar no primeiro testa esse, se true sai do case se false, testa o próx.
when AR.EFETIVADO = ‘0’ then ‘A’//Se passou pelos anteriores, sem entrar, testa esse…
end as statu,