[firebase-br] RE: É possível usar o COUNT com uma condição específica?

Giovani Rochê giovaniroche em msn.com
Ter Set 16 09:00:46 -03 2008


Funcionou perfeitamente. Uso o FB 2.1 e ficou assim:
 
SELECT T.NOME,T.TIPO,
SUM(IIF(A.STATUS = 0, 1, 0)) AS CURSANDO,
SUM(IIF(A.STATUS = 1, 1, 0)) AS EXCLUIDO,
SUM(IIF(A.STATUS = 2, 1, 0)) AS TRANSFERIDO
FROM ALUNOS A,TURMA T,MATRICULA M
WHERE M.COD_ALUNO = A.CODIGO AND M.COD_TURMA = T.CODIGO
AND M.COD_TIPO_MATRICULA = 0 
AND M.COD_DISCIPLINA IN (SELECT MAX(COD_DISCIPLINA) FROM GRADE WHERE COD_TURMA = M.COD_TURMA)
AND M.ANO = '2008'
GROUP BY T.NOME,T.TIPO
 
Mt obrigado pela ajuda e sucesso pra vc!
 
> From: temp2 em tecnobyte.com.br> To: lista em firebase.com.br> Date: Tue, 16 Sep 2008 07:47:42 -0400> Subject: Re: [firebase-br] É possível usar o COUNT com uma condição específica?> > Veja se isto resolve. Caso esteja usando uma versão mais antiga do FB, > troque a função IIF por CASE.> > SELECT> Tabela1.Nome,> SUM(IIF(Tabela2.Status = 0, 1, 0)) AS QtdZero,> SUM(IIF(Tabela2.Status = 1, 1, 0)) AS QtdUm,> SUM(IIF(Tabela2.Status = 2, 1, 0)) AS QtdDois> FROM Tabela1> JOIN Tabela2 ON Tabela2.Tabela1_Id = Tabela1.Id> GROUP BY Tabela1.Nome> > Atenciosamente.> > Daniel P. Guimarães> Tecnobyte Informática> www.tecnobyte.com.br> > ----- Original Message ----- > From: "Giovani Rochê" <giovaniroche em msn.com>> To: <lista em firebase.com.br>> Sent: Tuesday, September 16, 2008 7:20 AM> Subject: [firebase-br] É possível usar o COUNT com uma condição específica?> > > > Bom dia a todos!> > Estou fazendo uma consulta que deve me retornar o total de alunos por turma> de acordo com o status dos mesmos. Por exemplo, na msm consulta eu preciso> do total de alunos com o STATUS = 0 e STATUS = 2. Fiz esse select:> > SELECT T.NOME,COUNT(A.CODIGO) AS TOTAL,T.TIPO> FROM ALUNOS A,TURMA T,MATRICULA M> WHERE M.COD_ALUNO = A.CODIGO AND M.COD_TURMA = T.CODIGO> AND M.COD_TIPO_MATRICULA = 0> AND M.COD_DISCIPLINA IN (SELECT MAX(COD_DISCIPLINA) FROM GRADE WHERE > COD_TURMA = M.COD_TURMA)> AND A.STATUS <> 1> AND M.ANO = '2008'> GROUP BY T.NOME,T.TIPO> > Com esse select consegui o total de alunos "somando" o STATUS 0 e 2 (o BD so > aceita 0,1 e 2).> eu queria um select que me agrupasse o total do STATUS 0 e o total do STATUS > 2 na mesma> consulta. Pensei em fazer algo do tipo: SELECT COUNT(A.STATUS) WHERE > A.STATUS = 2 mas não deu boa. Se alguem puder me ajudar agradeço.> > > Obrigado.> > > ______________________________________________> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br> Para saber como gerenciar/excluir seu cadastro na lista, use: http://www.firebase.com.br/fb/artigo.php?id=1107> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
_________________________________________________________________
Confira vídeos com notícias do NY Times, gols direto do Lance, videocassetadas e muito mais no MSN Video!
http://video.msn.com/?mkt=pt-br


Mais detalhes sobre a lista de discussão lista