none
Dúvida sobre como realizar um tipo de consulta agrupando e contando RRS feed

  • Pergunta

  • Tenho uma tabela de Resgates

    nessa
    tabela , tenho quem foi o responsável pelo resgate, e qual status do resgate (ex: 1 - pendente; 2 - concluido).

    Se eu quisesse fazer uma busca para agrupar todos os responsáveis em uma posição, e nas outras, a contagem da incidência dos pendentes e dos concluídos, como eu poderia fazer?


    digamos assim, minha tabela de resgates eh essa aqui:

    id / Responsavel / Status
    0 / 2 / 1
    1 / 2 / 1
    2 / 3 / 2
    3 / 3 / 1
    4 / 4 / 1
    5 / 4 / 2

    queria uma lista com o seguinte resultado:

    respl / Qtde Pendentes / Qtde Concluidos
    2 / 2 / 0
    3 / 1 / 1
    4 / 1 / 1

    domingo, 8 de janeiro de 2012 13:48

Respostas

  • Boa tarde

     

    Experimente da seguinte forma:

     

     

    select 
        Responsavel,
        sum(case status when 1 then 1 else 0 end) as Pendentes,
        sum(case status when 2 then 1 else 0 end) as Concluidos
    from Tabela
    group by Responsavel
    
    

     

     

    Espero que seja útil.

     


    Assinatura: Imobiliarias em Suzano
    • Editado gapimex domingo, 8 de janeiro de 2012 14:40
    • Sugerido como Resposta David Silva domingo, 8 de janeiro de 2012 15:23
    • Marcado como Resposta rmaragno domingo, 8 de janeiro de 2012 16:21
    domingo, 8 de janeiro de 2012 14:17

Todas as Respostas

  • Boa tarde

     

    Experimente da seguinte forma:

     

     

    select 
        Responsavel,
        sum(case status when 1 then 1 else 0 end) as Pendentes,
        sum(case status when 2 then 1 else 0 end) as Concluidos
    from Tabela
    group by Responsavel
    
    

     

     

    Espero que seja útil.

     


    Assinatura: Imobiliarias em Suzano
    • Editado gapimex domingo, 8 de janeiro de 2012 14:40
    • Sugerido como Resposta David Silva domingo, 8 de janeiro de 2012 15:23
    • Marcado como Resposta rmaragno domingo, 8 de janeiro de 2012 16:21
    domingo, 8 de janeiro de 2012 14:17
  • Boa tarde,

     

    Perfeito!! saiu do jeito que eu precisava. Muito obrigado mesmo!!

     

    Uma outra dúvida, e pra não mostrar os casos que o responsavel for 0 tanto em pendentes quanto em concluídos?

    domingo, 8 de janeiro de 2012 16:21
  • Acho que pode ser adicionada a clausula Having abaixo de Group:

     

    having Count(*) > 0
    

    A princípio acho que da forma acima seria suficiente, mas se for necessário podem ser utilizadas outras funções de agregação (inclusive o Sum da forma como foi sugerido anteriormente) no lugar do Count.

     

    Espero que seja útil.

     


    Assinatura: Imobiliarias em Suzano
    domingo, 8 de janeiro de 2012 17:41