Somatoria mysql

Preciso da somatoria, ao invés de duas linhas.

Abri um tópico ontem, mas não sei como continuar, se eu fizer

SELECT id,date,machineId,BELLY_DOOR FROM `counters_history` order by date asc`

sai isso

então posso chegar nessa SQL

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`

e sai isso

então estou agrupando por maquina, esta me dando um diferencial da menor entrada, para a entrada atual. Mas eu só queria +1 detalhe, que mostre uma somatoria entre as maquinas pelo maior numero de cada maquina.

Exemplo: que ele pegue o id 179. que é 70.000 + o id 180 que é 0 pois a maquina não teve entrada alguma, total de entrada de todas as (duas) maquinas 70.000.

  1. tem como fazer isso?
  2. eu não posso usar a coluna IN_BELLY_DOOR, ou seja, pegar valor máximo de cada idmachine? Como?

eu estava tentando e cheguei nisso.

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

dai ele me retorna qual o resultado da maquina 1 e da maquina 2 e assim por diante.

mas eu quero só um somatoria das maquinas = 70.000

e depois que eu entendi que é melhor fazer separado. no ireport deve dar pra fazer 2 sqls pra sair no resultado final.

1 sql pra mostrar o relatorio, e uma la em baixo pra sair o resultado

nao tem como dar um

SELECT a.id, a.machineId, a.date, a.BELLY_DOOR,        
sum(
(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 date, machineId
ORDER BY machineId, id

um sum no meio desses selects. eu preciso que seja só 1 resultado. 1 linha. tipo Soma das maquinas = 70.000.

Resolvido:

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) from soma;

solução é criar uma tabela temporaria e fazer a soma.