Tenía previamente una consulta que daba el total facturado del año. Simplificando:
Código SQL:
Ver original
SELECT c.id_cliente, SUM(f.precio) FROM cliente c LEFT JOIN factura f ON c.id_cliente = f.id_cliente WHERE YEAR(f.fecha)=2012 GROUP BY c.id_cliente
Pero ahora se les dió por pedirme que salga en las columnas también mes a mes, lo que tenía en mente es hacer algo así, pero no se si es válido, al menos así tal cual no lo es.
Sólo voy a poner la columna Enero.
Código SQL:
Ver original
SELECT c.id_cliente, SUM(f.precio), (SELECT SUM(f.precio) FROM factura f2 WHERE f2.id_cliente = c.id_cliente AND MONTH(f2.fecha)=1 AND YEAR(f2.fecha)=2012) AS Enero FROM cliente c LEFT JOIN factura f ON c.id_cliente = f.id_cliente WHERE YEAR(f.fecha)=2012 GROUP BY c.id_cliente
¿Es viable hacer eso de alguna forma?
Pensé que se hacía así pero en vista del error que me lanza ya veo que no.
EDIT:
Lo he puesto aquí porque pensé que era exactamente igual pero la base de datos es DBASE y la utilizo a través de un ODBC. Parece que por una limitación no se pueden hacer subquerys en el select, sólo en el WHERE. La solución que encontré es esta:
Código SQL:
Pero claro, así no puedo comparar las claves de las consultas ni realizar lo que quería.Ver original
SELECT table1.FIELD, dummy.COUNT FROM table1, (SELECT COUNT(*) FROM table2) AS dummy (COUNT);
Si alguien conoce alguna solución se agradece.