Ver Mensaje Individual
  #6  
Antiguo 24-02-2010
Gallosuarez Gallosuarez is offline
Miembro
 
Registrado: feb 2007
Posts: 92
Reputación: 18
Gallosuarez Va por buen camino
Otra solución..

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
Responder Con Cita