Ir para conteúdo

Case Em Sql


Oredis Rodrigo

Posts Recomendados


  • Tópicos Que Criei:  21
  • Tópicos/Dia:  0.00
  • Meu Conteúdo:  90
  • Conteúdo/Dia:  0.01
  • Reputação:   0
  • Pontos/Conquistas:  660
  • Conteúdo Resolvido:  0
  • Dias Ganho:  0
  • Status:  Offline
  • Idade:  56

Me ajuda nessa!!!

Esta sentença retorna o percentual de um evento em relação ao todo, a sentença esta funcionando, porem quando não tem valor na seção, retorna como “nenhum registro encontrado”, preciso colocar um CASE nesta sentença para retornar 0 (Zero) quando não encontra nenhum valor.

SELECT CAST ((( SELECT SUM(C.VALOR)

FROM PFUNC A

JOIN PFFINANC C

ON A.CODCOLIGADA = C.CODCOLIGADA

AND A.CHAPA = C.CHAPA

WHERE C.MESCOMP =:PLN_$B$2_N

AND C.ANOCOMP =:PLN_$B$3_N

AND C.CODEVENTO IN ('L001')

AND A.CODCOLIGADA= :PLN_$B$1_N

AND A.CODSECAO LIKE ('1.1.1.002%'))*100) AS FLOAT )/

SUM(D.VALOR)

FROM PFUNC E

JOIN PFFINANC D

ON E.CODCOLIGADA = D.CODCOLIGADA

AND E.CHAPA = D.CHAPA

WHERE D.MESCOMP =:PLN_$B$2_N

AND D.ANOCOMP =:PLN_$B$3_N

AND D.CODEVENTO IN ('L001')

AND E.CODCOLIGADA= :PLN_$B$1_N

Muito Obrigado!!!

Oredis Rodrigo

Link para comentar
Compartilhar em outros sites


  • Tópicos Que Criei:  6
  • Tópicos/Dia:  0.00
  • Meu Conteúdo:  290
  • Conteúdo/Dia:  0.06
  • Reputação:   17
  • Pontos/Conquistas:  1.523
  • Conteúdo Resolvido:  0
  • Dias Ganho:  12
  • Status:  Offline

não precisa do uso do case, acrescenta o isnull:

SELECT CAST ((isnull(( SELECT SUM(C.VALOR)
FROM PFUNC A
JOIN PFFINANC C
ON A.CODCOLIGADA = C.CODCOLIGADA
AND A.CHAPA = C.CHAPA
WHERE C.MESCOMP =:PLN_$B$2_N
AND C.ANOCOMP =:PLN_$B$3_N
AND C.CODEVENTO IN ('L001')
AND A.CODCOLIGADA= :PLN_$B$1_N
AND A.CODSECAO LIKE ('1.1.1.002%')),0)*100) AS FLOAT )/

SUM(D.VALOR)
FROM PFUNC E
JOIN PFFINANC D
ON E.CODCOLIGADA = D.CODCOLIGADA
AND E.CHAPA = D.CHAPA
WHERE D.MESCOMP =:PLN_$B$2_N
AND D.ANOCOMP =:PLN_$B$3_N
AND D.CODEVENTO IN ('L001')
AND E.CODCOLIGADA= :PLN_$B$1_N

Editado por João Rodrigo
Link para comentar
Compartilhar em outros sites


  • Tópicos Que Criei:  21
  • Tópicos/Dia:  0.00
  • Meu Conteúdo:  90
  • Conteúdo/Dia:  0.01
  • Reputação:   0
  • Pontos/Conquistas:  660
  • Conteúdo Resolvido:  0
  • Dias Ganho:  0
  • Status:  Offline
  • Idade:  56

João Rodrigo,

Deu certo!!!, Parabens e muito obrigado!!!

Fazia anos que não postava.

Ja fiz minha doação, para manutenção do site!!!

Valeui!!!!

Oredis Rodrigo

Link para comentar
Compartilhar em outros sites

Participe da conversa

Você pode postar agora, e se registrar mais tarde. Se você tiver uma conta, faça o login agora para postar com sua conta.

Visitante
Responder esse tópico

×   Você colou conteúdo com formatação.   Remover formatação

  Only 75 emoji are allowed.

×   Seu link foi automaticamente inserido no corpo do post.   Exibir como um link

×   Seu conteúdo anterior foi restaurado.   Limpar conteúdo do editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Criar Novo...

Informação Importante

Usando este site, você concorda com nossos Termos de Uso e nossa Política de Privacidade.