Somatoria em mysql

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?

É o seguinte: a sua duvida me parece ao mesmo tempo simples e ao mesmo tempo desnecessária. já visto que a rotina SQL feita é para tirar a diferença entre dados coexistente entre o agrupamento entre datas. A SQL que eu te passei está rodando perfeitamente que até dados inexistente ela zera (0) a coluna, isso está correto.

Esse outro agrupamento é outra SQL não dá para colocar tudo na mesma até dá para repetir, mas, isso pode ocasionar lentidão pelo número excessivo de linhas repetidas!

Eu realmente faria outra SQL, então pra mim é não!

Outra SQL

SELECT a.machineId, max(a.BELLY_DOOR) valor_total
  FROM counters_history a
  GROUP BY a.machineId
  ORDER BY a.machineId

O resto eu resolveria na própria linguagem!

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