Srs.
Propongo otra solución mas rápida y robusta (creo yo). Utilizo CTE (Common Table Expressions). Funciona para la versión 2.1 en adelante.
Código SQL
[-]
WITH USUARIO_TOTAL AS (
SELECT USUARIO, TIPO, SUM(IMPORTE) AS TOTAL, COUNT(*) AS QTY
FROM USUARIOS
GROUP BY USUARIO, TIPO
)
SELECT DISTINCT U.USUARIO, GASTO.QTY AS GASTO_QTY, GASTO.TOTAL AS GASTO,
INGRESO.QTY AS INGRESO_QTY, INGRESO.TOTAL AS INGRESO
FROM USUARIOS U
LEFT JOIN USUARIO_TOTAL GASTO
ON U.USUARIO = GASTO.USUARIO AND GASTO.TIPO = 'Gasto'
LEFT JOIN USUARIO_TOTAL INGRESO
ON U.USUARIO = INGRESO.USUARIO AND INGRESO.TIPO = 'Ingreso';
Espero que sirva de algo...
Saludos
Gerardo Suárez Trejo