Ir para conteúdo
Fórum Script Brasil
  • 0

Contar Status


Luizzzzzzzzzzzzzzzz

Pergunta

Ola pessoal...td bem?

Preciso de um help...estou trabalhando com a programação php para gerar relatorio de um sistema... existe uma tabela de eventos que existe 4 tipos de status...se o status= 1 então é um tipo de evento...se for status = 2... é outro e assim por diante....

No meu relatorio preciso exibir a quantidade de cada status...então to fazendo 4 selects:

$aberto = mysql_query("SELECT count(DISTINCT a.codParticipacaoPre) AS total FROM participacaopre a Inner Join vinculo b ON a.matriculaAluno = b.matriculaVinculo Inner Join turma c ON b.turmaVinculo = c.codigoTurma Inner Join curso d ON c.codCurso = d.codCurso inner join eventopre e ON a.codEventoPre = e.codEventoPre where a.statusParticipacaoPre = '0' $where");

$linhaAberto = mysql_fetch_array($aberto);

$aceitas = mysql_query("SELECT count(DISTINCT a.codParticipacaoPre) AS total FROM participacaopre a Inner Join vinculo b ON a.matriculaAluno = b.matriculaVinculo Inner Join turma c ON b.turmaVinculo = c.codigoTurma Inner Join curso d ON c.codCurso = d.codCurso inner join eventopre e ON a.codEventoPre = e.codEventoPre where a.statusParticipacaoPre = '1' $where");

$linhaAceitas = mysql_fetch_array($aceitas);

$rejeitadas = mysql_query("SELECT count(DISTINCT a.codParticipacaoPre) AS total FROM participacaopre a Inner Join vinculo b ON a.matriculaAluno = b.matriculaVinculo Inner Join turma c ON b.turmaVinculo = c.codigoTurma Inner Join curso d ON c.codCurso = d.codCurso inner join eventopre e ON a.codEventoPre = e.codEventoPre where a.statusParticipacaoPre = '2' $where");

$linhaRejeitadas = mysql_fetch_array($rejeitadas);

$pendentes = mysql_query("SELECT count(DISTINCT a.codParticipacaoPre) AS total FROM participacaopre a Inner Join vinculo b ON a.matriculaAluno = b.matriculaVinculo Inner Join turma c ON b.turmaVinculo = c.codigoTurma Inner Join curso d ON c.codCurso = d.codCurso inner join eventopre e ON a.codEventoPre = e.codEventoPre where a.statusParticipacaoPre = '3' $where");

$linhaPendentes = mysql_fetch_array($pendentes);

não preciso dizer que a pagina demora 10 anos para carregar ne?

Eu sei que tem como eu fazer com apenas 1 select e eu consiga pegar o total de todos os status ao invés de fazer 4 selects...porem não sei como...alguém pode me dar uma luz pelo amor de Deus??

Obrigado pessoal!

Link para o comentário
Compartilhar em outros sites

5 respostass a esta questão

Posts Recomendados

  • 0

Oi,'Luizzzzzzzzzzzzzzzz'

Você já tentou fazer assim?

SELECT a.statusParticipacaoPre, count(DISTINCT a.codParticipacaoPre) AS total FROM participacaopre a Inner Join vinculo b ON a.matriculaAluno = b.matriculaVinculo Inner Join turma c ON b.turmaVinculo = c.codigoTurma Inner Join curso d ON c.codCurso = d.codCurso inner join eventopre e ON a.codEventoPre = e.codEventoPre 
WHERE  <sua-condição>
GROUP BY a.statusParticipacaoPre";

Link para o comentário
Compartilhar em outros sites

  • 0

Luiz,

A resposta desta query será uma coluna com o valor do status e outra coluna com a quantidade encontrada.

Algo parecido com isto:

statusParticipacaoPre total
                   0      4
                   1      6
                   2      3
                   4      2
etc.

Link para o comentário
Compartilhar em outros sites

  • 0
Denis esta pefeito...porem esta MUITO lento para carregar a pagina...chega a travar o site... tem alguma forma de otimizar o tempo de execução? Infelizmente não posso mudar a estrutura do banco...

Obrigado!

Pode criar índices?

Se sim, verifique se há índices nestas tabelas/campos:

SELECT a.statusParticipacaoPre, count(DISTINCT a.codParticipacaoPre) AS total FROM participacaopre a Inner Join vinculo b ON a.matriculaAluno = b.matriculaVinculo Inner Join turma c ON b.turmaVinculo = c.codigoTurma Inner Join curso d ON c.codCurso = d.codCurso inner join eventopre e ON a.codEventoPre = e.codEventoPre 
WHERE  <sua-condição>
GROUP BY a.statusParticipacaoPre";

a.matriculaAluno

b.matriculaVinculo

b.turmaVinculo

c.codigoTurma

c.codCurso

d.codCurso

a.codEventoPre

e.codEventoPre

e em atributos/campos que aparecem em sua cláusula where.

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.


  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...