Instrução SQL - CASE WHEN

Como faço pra executar esse SQL aqui:

CASE WHEN et2.NUM_SERVIDOR > 1 THEN CAST(((SUM(DECODE(nota_recurso.CO_QUESITOS_AVAL,1,nota_recurso.VL_NOTA,NULL)) + SUM(DECODE(nota_recurso.CO_QUESITOS_AVAL,2,nota_recurso.VL_NOTA,NULL)) + SUM(DECODE(nota_recurso.CO_QUESITOS_AVAL,3,nota_recurso.VL_NOTA,NULL)) + SUM(DECODE(nota_recurso.CO_QUESITOS_AVAL,4,nota_recurso.VL_NOTA,NULL)) + SUM(DECODE(nota_recurso.CO_QUESITOS_AVAL,5,nota_recurso.VL_NOTA,NULL)))/COUNT(*))*6/10 AS DECIMAL(4, 2)) CAST(((SUM(DECODE(nota_reconsideracao.CO_QUESITOS_AVAL,1,nota_reconsideracao.VL_NOTA,NULL)) + SUM(DECODE(nota_reconsideracao.CO_QUESITOS_AVAL,2,nota_reconsideracao.VL_NOTA,NULL)) + SUM(DECODE(nota_reconsideracao.CO_QUESITOS_AVAL,3,nota_reconsideracao.VL_NOTA,NULL)) + SUM(DECODE(nota_reconsideracao.CO_QUESITOS_AVAL,4,nota_reconsideracao.VL_NOTA,NULL)) + SUM(DECODE(nota_reconsideracao.CO_QUESITOS_AVAL,5,nota_reconsideracao.VL_NOTA,NULL)))/COUNT(*))*6/10 AS DECIMAL(4, 2)) CAST(((SUM(DECODE(aq.CO_QUESITOS_AVALIADOS, 1, aq.VL_NOTA,NULL)) + SUM(DECODE(aq.CO_QUESITOS_AVALIADOS, 2, aq.VL_NOTA,NULL)) + SUM(DECODE(aq.CO_QUESITOS_AVALIADOS, 3, aq.VL_NOTA,NULL)) + SUM(DECODE(aq.CO_QUESITOS_AVALIADOS, 4, aq.VL_NOTA,NULL)) + SUM(DECODE(aq.CO_QUESITOS_AVALIADOS, 5, aq.VL_NOTA,NULL)))/COUNT(*))*6/10 AS DECIMAL(4, 2)) END

Precisava que quando o NUM_SERVIDOR fosse maior do que 1 executasse esses tres casts, mas nao funciona assim =[

Creio que o problema seja por que todo CASE tem, no mínimo um WHEN e um ELSE.

Mas vc tem alguma ideia pra eu resolver isso?

Pq nesse caso ai tem um WHEN

Mas e no caso de não atender essa condição, o que ele deve fazer? isso que vc deve colocar no else.

Att.

Mas vc tem alguma ideia pra eu resolver isso?

Pq nesse caso ai tem um WHEN[/quote]
Porra, você tem dois perfis no guj?
Sim, tem o WHEN, mas e o ELSE, cadê?
Como disse o nosso camarada ali, o que fazer se não for igual a 1?

Mas vc tem alguma ideia pra eu resolver isso?

Pq nesse caso ai tem um WHEN[/quote]
Porra, você tem dois perfis no guj?[/quote]MAhuahuahuahuahuahuuhauhauha

Tive que rir dessa! :lol: :lol: :lol: :lol: :lol:

O case espera um único valor. Então no caso você precisaria de três:

select a,b,c (case
         when xxx then CAST1
end) as d, (case
         when xxx then CAST2
end) as e,  (case
         when xxx then CAST3
end) as f 
          Ta funfando... de uma olhada
     [code]  SELECT *,
                    CASE WHEN (
                        SELECT COUNT(*)
                        FROM vinculacao_email
                        WHERE vinculacao_email.id_usuario = 2
                        AND vinculacao_email.id_usuario_vinculado = usuarios.id
                    ) > 0 THEN 1
                    ELSE 0
                    END AS possui_vinculo
                FROM usuarios
                ORDER BY nome ASC[/code]