Ver Mensaje Individual
  #1 (permalink)  
Antiguo 27/08/2008, 14:56
clinisbut
 
Fecha de Ingreso: diciembre-2004
Mensajes: 278
Antigüedad: 19 años, 5 meses
Puntos: 0
Sum() y agrupar por tipo

Hola a todos, tengo un problema con la optimización de una consulta.
tengo una tabla "facturas", en la cual almaceno varios tipos diferentes de facturas (campo id_tipo_factura) y quiero sumar el importe de cada tipo por separado.
Hasta ahora hago lo siguiente:

Código:
SELECT SUM( f1.total_factura ) AS total_pedidos,
					SUM( f2.total_factura) AS total_generales,
					SUM( f3.total_factura) AS total_emitidas
FROM `facturas` AS f1, `facturas` AS f2, `facturas` AS f3
WHERE
f1.id_tipo_factura=2 AND 
f2.id_tipo_factura=3 AND
f3.id_tipo_factura=1 AND
YEAR(f1.fecha)='2008' AND
YEAR(f2.fecha)='2008' AND
YEAR(f3.fecha)='2008'
Bien, esta consulta funciona pero es demasiado lenta sobre mi base de datos (0.5 sec).
Habia pensado hacer algo así para hacerla mas ràpida:
Código:
SELECT SUM(total_factura)
FROM facturas
WHERE YEAR(fecha)='2008' GROUP BY id_tipo_factura
Evidentemente no devuelve los mismos resultados, luego no funciona correctamente.
Alguien ve una solución?