none
COMO FAÇO UM CASE NESSE CASO? RRS feed

  • Pergunta

  • TENHO ESSA CONSULTA:

    SELECT
    	COUNT(UMATALUN.STATUS)
    FROM
    	UMATALUN
    WHERE
    	UMATALUN.STATUS = 'RN'
    	AND UMATALUN.CODCUR = 5
    GROUP BY UMATALUN.MATALUNO
    ORDER BY UMATALUN.MATALUNO DESC

    QUERIA FAZER UM CASE SE O  UMATALUN.STATUS = 'RF'

    COMO FAÇO ISSO?

    quinta-feira, 31 de janeiro de 2013 18:28

Respostas

  • Ovatsug,

    tenta dessa forma:

    SELECT
      [STATUS REPROVACAO] = CASE
        WHEN UMATALUN.STATUS = 'RN' THEN 'REPORVADO POR NOTA'
        WHEN UMATALUN.STATUS <> 'RN' THEN 'REPROVADO POR 
         FALTA' END,
      [CONTAGEM] = COUNT(UMATALUN.STATUS)
    FROM
    	UMATALUN
    WHERE
    	UMATALUN.STATUS = 'RN' --TALVEZ VOCE TENHA QUE MUDAR ESSA RESTRICAO
    	AND UMATALUN.CODCUR = 5
    GROUP BY UMATALUN.MATALUNO
    ORDER BY UMATALUN.MATALUNO DESC
    Espero tê-lo ajudado.


    Se esta sugestão for útil, por favor, classifique-a como útil. Se ela lhe ajudar a resolver o problema, por favor, marque-a como Resposta.

    • Marcado como Resposta Ricardo Russo quarta-feira, 6 de fevereiro de 2013 12:38
    quinta-feira, 31 de janeiro de 2013 23:03

Todas as Respostas

  • Tenho a consulta:

    SELECT
    	COUNT (ALUNO.STATUS)
    FROM
    	ALUNO
    WHERE
    	ALUNO.STATUS = 'REPROVADO_NOTA'
    	AND ALUNO.CODIGOCURSO = 5
    GROUP BY ALUNO.NOME
    ORDER BY ALUNO.NOME DESC

    Caso o ALUNO.STATUS = 'REPROVADO_FALTA'

    como faço pra unir essas duas consultas?


    • Mesclado Ricardo Russo quarta-feira, 6 de fevereiro de 2013 12:40 Mesma questão do mesmo membro da comunidade
    quinta-feira, 31 de janeiro de 2013 18:32
  • Ovatsug,

    Especifique um pouco mais sua dúvida..

    Para fazer case, a sintaxe seria.

    SELECT CASE WHEN UMATALUN.STATUS = 'RN'

                 THEN XXXXX

        WHEN UMATALUN.STATUS = 'RF'

       THEN ZZZZZZ

                 ELSE YYYYYY

                 END 

    quinta-feira, 31 de janeiro de 2013 18:33
  • Tente assim ,

    Select
    	Sum(Case When Aluno.Status = 'REPROVADO_NOTA' Then 1 Else 0 End) ReprovadoNota,
    	Sum(Case When Aluno.Status = 'REPROVADO_FALTA' Then 1 Else 0 End) ReprovadoFalta
    Where 
    	(Aluno.Status = 'REPROVADO_FALTA' Or Aluno.Status = 'REPROVADO_NOTA') And 
    	Aluno.CodigoCurso = 5
    Group By 
    	Aluno.Nome
    Order By
    	Aluno.Nome Desc


    Peterson Roberto Oliveira Seridonio
    Desenvolvedor C#
    MCTS Windows 7

    • Sugerido como Resposta Alexandre Matayosi quinta-feira, 31 de janeiro de 2013 19:38
    • Marcado como Resposta Ricardo Russo quarta-feira, 6 de fevereiro de 2013 12:39
    quinta-feira, 31 de janeiro de 2013 19:25
  • Ovatsug,

    tenta dessa forma:

    SELECT
      [STATUS REPROVACAO] = CASE
        WHEN UMATALUN.STATUS = 'RN' THEN 'REPORVADO POR NOTA'
        WHEN UMATALUN.STATUS <> 'RN' THEN 'REPROVADO POR 
         FALTA' END,
      [CONTAGEM] = COUNT(UMATALUN.STATUS)
    FROM
    	UMATALUN
    WHERE
    	UMATALUN.STATUS = 'RN' --TALVEZ VOCE TENHA QUE MUDAR ESSA RESTRICAO
    	AND UMATALUN.CODCUR = 5
    GROUP BY UMATALUN.MATALUNO
    ORDER BY UMATALUN.MATALUNO DESC
    Espero tê-lo ajudado.


    Se esta sugestão for útil, por favor, classifique-a como útil. Se ela lhe ajudar a resolver o problema, por favor, marque-a como Resposta.

    • Marcado como Resposta Ricardo Russo quarta-feira, 6 de fevereiro de 2013 12:38
    quinta-feira, 31 de janeiro de 2013 23:03