Código MySQL:
Ver original hpla.nombre,
hpla.patern,
hpla.matern,
SUM(IF(estimulos.pago
="P",estimulos.monto
,0)) as TotalPagosP
, SUM(IF(estimulos.pago
="O",estimulos.monto
,0)) as TotalPagosO
, SUM(estimulos.monto
) as TotalPagos
centros.centro,
ramas.desram,
ramas.rama,
hpla.codfun
centros,
ramas,
estimulos,
pue
WHERE hpla.cenres
= centros.cenres
AND hpla.codfun
= pue.codfun
AND ramas.rama
= pue.rama
AND estimulos.empl
= hpla.empl
hpla.nombre,
hpla.patern,
hpla.matern,
estimulos.monto,
centros.centro,
ramas.desram,
ramas.rama,
hpla.codfun
Es question que en la lista de campos de GROUP BY no tengas el tipo de pago... es decir la suma se hace para cada cambio en el conjunto de datos que pongas en GROUP BY...
Si hubiera un empledao en dos ramas.rama tambien tendrias el problema de dos registros para ese usuario.
ORDER BY tampoco es necesario....
Estudia la sintaxis de
JOIN es mas actual que la que usas...
Esta solucion es mas SQL standar que la tuya.....