Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Gabriel Zago Marino

Problema com COUNT + JOIN

Recommended Posts

Seguinte, tenho um seguinte comando em SQL:

 

SELECT P.COD_PROFESSOR, TP.COD_TURMA

1- FROM PROFESSOR P JOIN TURMA_PROF TP ON TP.COD_TURMA =: C

2- JOIN PLANEJAMENTO_IND PL ON TP.COD_PROFESSOR = PL.COD_PROFESSOR AND PL.SEGUNDA =: A AND PL.AULA2 =: B

3- WHERE P.COD_PROFESSOR = TP.COD_PROFESSOR AND P.TOTAL_H_A > 0

4- AND DIA_DISP1 =: D AND AND_SEGUNDA2 =: E

 

 

Esse SQL faz o seguinte:

 

1- Seleciona os Professores da Turma indicada (Ex.: Cod 1 - Turma: 1EM A)

2- Verifica os professores que nao estao em Planejamento neste dia e nesta aula

3- Seleciona os professores que tenham um TOTAL HORA AULA maior q 0(zero)

4- Verifica os professores que estao disponiveis na Segunda-Feira e na Segunda Aula

 

 

 

Até ai beleza, meu SQL ta funfando normal... agora desejo colocar no meio desse msm SQL outros 3:

 

 

Primeiro SQL:

 

SELECT COD_PROFESSOR,count(COD_PROFESSOR) as Contagem from turma_prof where

COD_PROFESSOR =:Codigo group by COD_PROFESSOR order by count(COD_PROFESSOR) desc

Conta quantas turmas o professor(la de cima dakele SQL) cadastradas na tabela. (Ex.: Cód Prof: 36 - Count: 5)

 

***************************************************************************************************************

 

Segundo SQL:

 

SELECT COD_PROFESSOR, (HORA_AULA/Contagem) as Total

FROM PROFESSOR where COD_PROFESSOR =:Codigo

 

Pega a quantidade de HORA AULA do professor dakele SQL la de cima e divide

pelo Primeiro SQL(Ex.: Código Prof: 36 - H/A: 20 / Count: 5 = 4)

 

***************************************************************************************************************

 

Tercerio SQL:

SELECT COD_PROFESSOR, COD_TURMA, count(COD_PROFESSOR), count(COD_TURMA) from HORARIO where COD_PROFESSOR =: Codigo

group by COD_PROFESSOR, COD_TURMA order by count(COD_PROFESSOR), count(COD_TURMA) desc

 

Conta quantos registros do Professor estão cadastrados na tabela HORARIO...

 

--------------------------------------------------------------------------------------------------------------

 

Pois bem, o que desejo fazer além de INSERIR esses 3 SQL's no SQL la de cima:

 

Comparar o SEGUNDO SQL (Ex.: Count = 4) com o TERCEIRO SQL (Ex.: Count = 4), se esses COUNT's forem igual,

eu NÃO SELECIONO esse professor mais, forçando o Comando a procurar um outro Professor que tenha COUNT's

diferentes.

 

O que estou fazendo nesses 3 SQL's na verdade é tirando uma média de quantas vezes o professor terá que dar aula

naquela turma, atigindo o limite de 4 como no exemplo, esse professor n será mais inserido, so no outro dia.

 

 

 

Axo q eh uma tarefa meio dificil, estou martelando aki, mais se alguem conseguir, postem ai uma solução...

 

 

Vlw!!! Gabriel Zago.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Qual a versão do SQL que está utilizando 2000 / 2005 ou 2008?

 

Dependendo da versão tem funções que podem resolver este problema.

 

Att,

 

jribeirojr

 

 

Na verdade ribeiro, não é o SQL em si como banco, é um componente do Delphi 7 SQLQuery, o banco que eu utilizo é o FireBird 1.5,

mas creio eu que as linhas de comando sejam td a mesma, por isso postei aki.

 

Vlw!

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.