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?