Olá Pessoal!
Preciso gerar uma consulta no formato abaixo:
1. Professor Semestre Atual Semestre Anterior Diferenca
2. ----------- ----------------- -------------------- -----------
3.
4. Prof A 10:00 08:00 02: 00+
5. Prof B 07:00 11:00 04: 00-
A tabela principal é ALOCACAO, conforme abaixo:
1. CREATE TABLE `alocacao` (
2. `alc_id` int(11) NOT NULL auto_increment,
3. `alc_semestre` int(11) default NULL,
4. `alc_curso` int(11) default NULL,
5. `alc_professor` int(11) default NULL,
6. `alc_atividade` int(11) default NULL,
7. `alc_qtdHoras` double default NULL,
8. PRIMARY KEY (`alc_id`)
9. ) ENGINE=MyISAM DEFAULT CHARSET=latin1;
Fiz a seguinte query:
Select pfr_nome, Sum(alc_qtdHoras) as Sem_Ant,
(select sum(b.alc_qtdHoras) from alocacao as b
where b.alc_professor = alocacao.alc_professor
and b.alc_semestre = 2) as Sem_Atual
from alocacao Left Join professor On professor.pfr_id = alocacao.alc_professor
Left Join semestre On semestre.smt_id = alocacao.alc_semestre
Where alc_semestre >= 1
And alc_semestre <= 2
Group By pfr_nome, smt_descricao
Order By pfr_nome, smt_descricao
E o resultado foi:
pfr_nome Sem_Ant Sem_Atual
Ane Mari Cagneti da Maia 15 2
Ane Mari Cagneti da Maia 2 2
Cloves Wodtke 1 1
Gabriele da Maia 12 16
Gabriele da Maia 16 16
Vejam que o último registro não deveria aparecer, pois são as horas do Semestre_Atual, já computado na linha anterior.
Os registros da tabela:
pfr_nome smt_descricao Sum(alc_qtdHoras)
Ane Mari Cagneti da Maia 2007/1 15
Ane Mari Cagneti da Maia 2007/2 2
Cloves Wodtke 2007/2 1
Gabriele da Maia 2007/1 12
Gabriele da Maia 2007/2 16
Há como sumarizar as horas de dois semestres em uma única linha separando por semestre, como segue abaixo?
pfr_nome Sem_Ant Sem_Atual
Ane Mari Cagneti da Maia 15 0
Ane Mari Cagneti da Maia 2 0
Cloves Wodtke 1 0
Gabriele da Maia 12 16
Grato.