Foros del Web

Foros del Web (http://www.forosdelweb.com/)
-   Mysql (http://www.forosdelweb.com/f86/)
-   -   Dos sumas de diferentes campos en una tabla (http://www.forosdelweb.com/f86/dos-sumas-diferentes-campos-tabla-531851/)

qamelot 09/11/2007 06:52

Dos sumas de diferentes campos en una tabla
 
Hola! Llevo ya un tiempo intentando hacer una operación en la base de datos, pero no la consigo de ninguna forma...

Tiene que ser una tontería, pero yo no lo saco (todos los comandos que he probado me dan error).

La cosa es que tengo en una tabla el campo Consumo1 y el campo Consumo2, y lo que quiero es que me devuelva la suma de Consumo1 y Consumo2 de toda la tabla.

Lo he intentado de varias formas, por ejemplo:

SELECT (SELECT sum(consumo1) FROM gas WHERE distrito1="Madrid") AS q1, (SELECT
sum(consumo2) FROM gas WHERE distrito2="Madrid") AS q2;

Eso me devuelve la suma del consumo de esa ciudad en los dos distritos, pero por separado... y a mi me gustaría que me lo devolviese junto para después hacerle el order by y tenerlo ya ordenado por consumo de mayor a menor.



He probado

SELECT (SELECT sum(consumo1) FROM gas WHERE distrito1="Madrid") AS q1, (SELECT
sum(consumo2) FROM gas WHERE distrito2="Madrid") AS q2 order by q1+q2;

¿Alguna idea? Muchas gracias :-)

skatomundo 09/11/2007 10:33

Re: Dos sumas de diferentes campos en una tabla
 
puedes hacer algo así, pero tengo duda sobre la definición de distrito1 y distrito2 son campos distintos.. que me indicaran un lugar diferente para cada tupla?

bueno mira
Código PHP:

SELECT
consumos
.consumo1,
consumos.consumo2,
(
consumos.consumo1 consumos.consumo2) as total_consumo,
consumos.destrito1,
consumos.distrito2
FROM
consumos
GROUP BY
consumos
.destrito1,consumos.distrito2 

puedes hacer que sumen los 2 valores, pero sobre el como tratas los diferentes distritos en una misma tupla.. lo dudo..

saludos,

qamelot 12/11/2007 04:36

Re: Dos sumas de diferentes campos en una tabla
 
Perdón, creo que no me expresé bien :pensando:

Lo que yo quiero es ir acumulando la suma del consumo1 + el consumo2, pero si el consumo2 es igual al consumo1, entonces en vez de acumular consumo1 + consumo2 en la cifra, quiero que se sume otro valor (10.000)

Eso es lo que no se como hacer.... porque se puede poner

SELECT
consumos.consumo1,
consumos.consumo2,
(consumos.consumo1 + consumos.consumo2) as total_consumo,

pero entonces sólo suma eso, r1+r2 siempre... a mi me gustaría que se sumara r1+r2 siempre que r1 <> r2, si r1=r2, entonces que se sume otra cantidad mayor.


Con:

SELECT
consumos.consumo1,
consumos.consumo2,
(consumos.consumo1 + consumos.consumo2) as total_consumo,
consumos.destrito1,
consumos.distrito2
FROM
consumos
Where consumos.consumo1 <> consumos.consumo2
GROUP BY
consumos.destrito1,consumos.distrito2

estaría haciendo que sólo sume los que sean iguales... pero faltaría sumar 10000 a los que fueran iguales....


Espero haberme explicado bien :risa:

Muchas gracias!


La zona horaria es GMT -6. Ahora son las 06:40.

Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.