Supongamos que tengo esta tabla,
mes documento cantidad
01 AC 4682
01 AC 175
02 AC 6517
02 AC 550
03 AC 5118
03 AC 5760
02 AC 547
01 AC 602
Necesito realizar una sumatoría de valores por mes de esa tabla, es decir,
SELECT SUM(cantidad) As Enero FROM tbl WHERE mes = '01';
SELECT SUM(cantidad) As Febrero FROM tbl WHERE mes = '02';
SELECT SUM(cantidad) As Marzo FROM tbl WHERE mes = '03';
Pero necesito hacerlo, en SÓLO una query, es decir,
SELECT SUM(cantidad) As Enero, SUM(cantidad) As Febrero, SUM(cantidad) As Marzo FROM tbl WHERE (...)
¿ y si agrupas por mes y sumas la cantidad ? algo asi:
SELECT mes, SUM(cantidad) AS cant
FROM tabla
GROUP BY mes
y si queres ponerle los nombres de los meses:
SELECT (CASE(mes)
WHEN '01' THEN 'Enero'
WHEN '02' THEN 'Febrero'
WHEN '03' THEN 'Marzo'
END) AS mes
,SUM(cantidad) AS cant
FROM tabla
GROUP BY mes
saludos.
Sí, pero eso sería por filas, necesito es por columnas :p, ya igual lo solucione, pero si existe esta forma sería mucho mejor.
Hola.
Si necesitas que sea por columnas, entonces la consulta a montar podría ser del tipo:
SELECT
(SELECT SUM(cantidad) FROM tabla WHERE mes='01') as Enero,
(SELECT SUM(cantidad) FROM tabla WHERE mes='02') as Febrero,
(SELECT SUM(cantidad) FROM tabla WHERE mes='03') as Marzo
FROM tabla
LIMIT 1
Saludos.