Olá Pessoal!
Tenho que desenvolver um relatório no IReports onde liste o nome do professor e a quantidade de horas alocadas entre dois semestres:
Professor Semestre Atual Semestre Anterior Diferenca
----------- ----------------- -------------------- -----------
Prof A 10:00 08:00 02:00+
Prof B 07:00 11:00 04:00-
Minha abela de ALOCAÇÂO tem a seguinte estrutura:
CREATE TABLE `alocacao` (
`alc_id` int(11) NOT NULL auto_increment,
`alc_semestre` int(11) default NULL,
`alc_curso` int(11) default NULL,
`alc_professor` int(11) default NULL,
`alc_atividade` int(11) default NULL,
`alc_qtdHoras` double default NULL,
PRIMARY KEY (`alc_id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
Fiz a seguinte query:
Select pfr_nome, smt_descricao, Sum(alc_qtdHoras)
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 <= 9
Group By pfr_nome, smt_descricao
Order By pfr_nome, smt_descricao
Essa query retornou os registros abaixo:
pfr_nome smt_descricao Sum(alc_qtdHoras)
Prof A 2007/1 08
Prof A 2007/2 10
Prof B 2007/1 11
Prof B 2007/2 07
Pra gerar o relatório no formato que preciso posso criar uma tabela temporária com as colunas: Professor+SemestreAtual+SemestreAnt+HorasSemestreAtual+HorasSemestreAnt. e vincular no IReports e fim de papo. Mas como em java é tudo, ou quase tudo, há como gerar com o IReport um relatório no formato que apresentei acima sem gerar a tabela temporária?
Grato.