Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Dos sumas de diferentes campos en una tabla

Estas en el tema de Dos sumas de diferentes campos en una tabla en el foro de Mysql en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 09/11/2007, 06:52
 
Fecha de Ingreso: marzo-2006
Mensajes: 13
Antigüedad: 18 años, 1 mes
Puntos: 0
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
  #2 (permalink)  
Antiguo 09/11/2007, 10:33
Avatar de skatomundo  
Fecha de Ingreso: junio-2002
Ubicación: Santiago - CL
Mensajes: 2.532
Antigüedad: 21 años, 10 meses
Puntos: 125
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,
  #3 (permalink)  
Antiguo 12/11/2007, 04:36
 
Fecha de Ingreso: marzo-2006
Mensajes: 13
Antigüedad: 18 años, 1 mes
Puntos: 0
Re: Dos sumas de diferentes campos en una tabla

Perdón, creo que no me expresé bien

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

Muchas gracias!
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:02.