Jasperreport criando tabela temporaria

Preciso usar essa sql para criar um relatorio.

SELECT a.id, a.machineId, a.date, a.BELLY_DOOR,        
abs((select min(c.BELLY_DOOR) from counters_history
          c where a.machineId = c.machineId group by c.machineId limit 1) - BELLY_DOOR)        
    IN_BELLY_DOOR
FROM counters_history a
GROUP BY date, machineId
ORDER BY machineId, id

depois disso, no final do relatorio preciso de uma somatoria de todas as maquinas.

Usando essa SQL:

CREATE TEMPORARY TABLE IF NOT EXISTS SOMA AS (
SELECT a.id, a.machineId, a.date, a.BELLY_DOOR, 
(select max(c.BELLY_DOOR) from counters_history c where a.machineId = c.machineId group by c.machineId limit 1) - 
(select min(c.BELLY_DOOR) from counters_history c where a.machineId = c.machineId group by c.machineId limit 1)

		IN_BELLY_DOOR
		FROM counters_history a
		GROUP BY machineId
		ORDER BY machineId, id
);
select sum(IN_BELLY_DOOR)as grandTotal from soma;

,mas, acho que por causa do _temporary_ table, nao esta funcionando. Alguém sabe como posso resolver?

Qual o erro que esta ocorrendo?
Qual o Banco?

Já tentei fazer algo parecido com oracle e não rolou da erro de cursor, a solução foi usar datasets para executar consultas distintas.

comecei a usar datasets. E ELE MESCLA OS DADOS. nao sei mais oque fazer rs. Fiz uma gambiarra com tables mas ficou horrivel.

eu usei o dataset diferente, peguei os dois dados, mas quando eu vou usar o sum, ele usa como se fosse o dataset principal.