Fernandinha Postado Setembro 2, 2011 Denunciar Share Postado Setembro 2, 2011 (editado) Estou tentando executar a query abaixo fazendo uma contagem nos campos, porém sempre retorna o mesmo resultado par todas as colunas.Poderiam me ajudar, por favor?SELECT MATR.Id , CASE WHEN TP.StatusFrequencia = 'A' THEN COUNT(TP.StatusFrequencia) END AS QtFaltas , CASE WHEN TPA.StatusFrequencia = 'J' THEN COUNT(TPA.StatusFrequencia) END AS QtFaltasJustificadas , CASE WHEN TPB.StatusFrequencia = 'P' THEN COUNT(TPB.StatusFrequencia) END AS QtPresençaFROM MATRICULA_PQ MATRJOIN #TEMP AS TP ON TP.IDMATRICULA = MATR.Id AND TP.STATUSFREQUENCIA = 'A'JOIN #TEMP AS TPA ON TPA.Id = TP.ID AND TPA.IDMATRICULA = TP.IDMATRICULA JOIN #TEMP AS TPB ON TPB.Id = TPA.ID AND TPB.IDMATRICULA = TPA.IDMATRICULA GROUP BY MATR.Id, TP.StatusFrequencia, TPA.StatusFrequencia, TPB.StatusFrequenciaORDER BY MATR.IdObrigada,Fernanda Editado Setembro 2, 2011 por Fernandinha Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Fernandinha Postado Setembro 2, 2011 Autor Denunciar Share Postado Setembro 2, 2011 Pessoal,Consegui resolver, segue aí, caso alguém precise...SELECT MATR.Id AS [idMatricula] -- , COUNT (CASE WHEN TP.StatusFrequencia = 'A' THEN 'QtFaltas' END) 'QtFaltas' , COUNT (CASE WHEN TP.StatusFrequencia = 'J' THEN 'QtFaltasJustificadas' END) 'QtFaltasJustificadas' , COUNT (CASE WHEN TP.StatusFrequencia = 'P' THEN 'QtPresença' END) 'QtPresença'FROM MATRICULA_PQ MATRJOIN #TEMP AS TP ON TP.IDMATRICULA = MATR.IdGROUP BY MATR.IdORDER BY MATR.Id Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Fernandinha
Estou tentando executar a query abaixo fazendo uma contagem nos campos, porém sempre retorna o mesmo resultado par todas as colunas.
Poderiam me ajudar, por favor?
SELECT MATR.Id
, CASE WHEN TP.StatusFrequencia = 'A' THEN COUNT(TP.StatusFrequencia) END AS QtFaltas
, CASE WHEN TPA.StatusFrequencia = 'J' THEN COUNT(TPA.StatusFrequencia) END AS QtFaltasJustificadas
, CASE WHEN TPB.StatusFrequencia = 'P' THEN COUNT(TPB.StatusFrequencia) END AS QtPresença
FROM MATRICULA_PQ MATR
JOIN #TEMP AS TP ON TP.IDMATRICULA = MATR.Id AND TP.STATUSFREQUENCIA = 'A'
JOIN #TEMP AS TPA ON TPA.Id = TP.ID AND TPA.IDMATRICULA = TP.IDMATRICULA
JOIN #TEMP AS TPB ON TPB.Id = TPA.ID AND TPB.IDMATRICULA = TPA.IDMATRICULA
GROUP BY MATR.Id, TP.StatusFrequencia, TPA.StatusFrequencia, TPB.StatusFrequencia
ORDER BY MATR.Id
Obrigada,
Fernanda
Editado por FernandinhaLink para o comentário
Compartilhar em outros sites
1 resposta a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.