SELECT MULTIPLE

Iniciado por Shell Root, 16 Octubre 2012, 21:17 PM

0 Miembros y 1 Visitante están viendo este tema.

Shell Root

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,
Código (mysql) [Seleccionar]

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,
Código (mysql) [Seleccionar]

SELECT SUM(cantidad) As Enero, SUM(cantidad) As Febrero, SUM(cantidad) As Marzo FROM tbl WHERE (...)
Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.

seba123neo

#1
¿ y si agrupas por mes y sumas la cantidad ? algo asi:

Código (sql) [Seleccionar]
SELECT mes, SUM(cantidad) AS cant
FROM tabla
GROUP BY mes


y si queres ponerle los nombres de los meses:

Código (sql) [Seleccionar]
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.
La característica extraordinaria de las leyes de la física es que se aplican en todos lados, sea que tú elijas o no creer en ellas. Lo bueno de las ciencias es que siempre tienen la verdad, quieras creerla o no.

Neil deGrasse Tyson

Shell Root

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.
Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.

HdM

Hola.

Si necesitas que sea por columnas, entonces la consulta a montar podría ser del tipo:

Código (sql) [Seleccionar]

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.

- Nice to see you again -