Usuário com melhor resposta
Dúvida sobre como realizar um tipo de consulta agrupando e contando

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
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
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
-
-
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